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;
}