一入代码深似海,从此妹纸是路人,今天为大家带来的是初始C语言时简单小程序的第三部分.
(一)将数组A中的内容和数组B中的内容进行交换。(数组一样大)
int main(){
int a[5] = { 1, 2, 3, 4, 5 };
int b[5] = { 6, 7, 8, 9, 10 };//定义两个相同大小的数组a,b.
int Exnumber = 0;//交换站,或者说上篇博客中说到的篮子C
int i = 0;
printf("数组a内容为:\n");//循环打印输出数组a
for (i = 0; i < 5; i++){
printf("%d ", a[i]);
}
printf("\n");
printf("数组b内容为:\n");//循环打印输出数组b
for (i = 0; i < 5; i++){
printf("%d ", b[i]);
}
printf("\n");//交换开始
for (i = 0; i < 5; i++){
Exnumber = a[i];
a[i] = b[i];
b[i] = Exnumber;
}//答应交换后的数组a.b
printf("交换后数组a内容为:\n");
for (i = 0; i < 5; i++){
printf("%d ", a[i]);
}
printf("\n");
printf("交换后数组b内容为:\n");
for (i = 0; i < 5; i++){
printf("%d ", b[i]);
}
printf("\n");
system("pause");
return 0;
}
交换两个相同大小数组中的值,其关键点在于:
1)如何输出数组:这里用到循环,无论是值的交换还是值的输出,使用简单的for循环完成要求即可
2)交换:在第一篇博客中有提到两个值的交换,原理相似,此处不再多提.
(二))计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
看到这个题目首先要想到,如何实现+,-的替换.
如果说一直按照+,-题目所呈现的来进行编程,会发现难度很大.那么全部看为+,+(-1)*number.这样就简化了逻辑.
引入:如何在C语言中表示一个数的平方呢?
如:2的平方 sum = pow ( 2 , 2 ); 或者 2的3次方 sum = pow ( 2 , 3 ) 当然,引入不要忘了带上头文件math.h
int main(){
int i = 0;
float sum = 0;//定义float类型方便存储计算值
for (i = 1; i < 100; i++){
sum = sum + (pow(-1, (i + 1)) / i);//(pow(-1, (i + 1))表示分子正负的变化,方便加减
}
printf("%f", sum);
system("pause");
return 0;
}
难点:
1)如何依次表示+ ,-,+,-,+,-.这里转化为全+即可,加上一个-1(number),用(-1)来控制-的出现,完成逻辑.
2)sum记录值时因为分子是一个较长的表达式,这里需要注意括号的书写,防止遗漏
(三)编写程序数一下 1到 100 的所有整数中出现多少次数字9
int main(){
int i = 0;
int sum = 0;
for (i = 0; i < 100; i++){
if ((i + 1) % 10 == 0){
printf("%d\n", i);//这里打印的是i+1能够整除10的数
sum++;
}
if ((i > 89)&&(i < 99)){//
printf("%d\n", i);//这里打印的是十位为9的数
sum++;
}
}
printf("%d\n", sum);
system("pause");
return 0;
}
难点:
判断1~100数字9的出现次数.其只能出现在个位或者十位,则有
1)如果数字i个位是9,十位不是9,则(i+1)%10 == 0,计数器sum++.便有了第一个判断条件.
2)如果数字i十位是9,个位不是9,那么计数器sum++;
但99这个数字满足两个条件,所以需要注意,否则会造成多加一次,影响结果的正确值.