c++基本水题(二)

1. 将数组A中的内容和数组B中的内容进行交换。(数组一样大)

其实这个问题很简单和交换两个数的原理是一样的,引入一个变量,只是难点是指针变量交换,为什么要用指针,其实指针是交换地址,交换值也是可以的,在c语言中,array[ 100],这种数组名代表的是整个数组,数组的地址由第一个数组代表,*a就是数组的内容,若不用指针,此程序交换的是参数的拷贝,参数的值并未进行交换。(具体可以参照<<c和指针>>)。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
void swap(int *p1,int *p2)
{
  int tmp=*p1;
  *p1=*p2;
  *p2=tmp;
}
int main()
{
  int a[10]={0,5,6,8,9,4,5,3,2,52};
  int b[10]={11,13,15,17,25,36,2,5,8,9};
  for(int i=0;i<10;i++)
  {
    swap(&a[i],&b[i]);
  }
  for(int i=0;i<10;i++)
  {
    cout<<" "<<a[i];
  }
  printf("\n");
  for(int i=0;i<10;i++)
  {
    cout<<" "<<b[i];
  }
  return 0;
}

2. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

其实很简单,就是对for循环的考察。方法有很多种,注意sum用的是double,所以后面是1.0/sum,而不是1/sum,这是两个截然不同的结果。

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
  int i;
  double sum=0;
  for(i=1;i<101;i++)
  {
    if(i%2==0)
     sum-=1.0/i;
    else
     sum+=1.0/i;
  }
  printf("%lf",sum);
}

3. 编写程序数一下 1到 100 的所有整数中出现多少次数字9。

很简单,主要是考虑个位,十位,百位出现次数。很简单的逻辑。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
  int cnt=0;
  for(int i=0;i<101;i++)
  {
      if(i%10==9)
        cnt+=1;
    else if(i/10==9)
         cnt+=1;
  }
  printf("%d\n",cnt);
  return 0;
}

猜你喜欢

转载自blog.csdn.net/cjh1459463496/article/details/82939374
今日推荐