开始这次的练习啦~ 1、将数组A中的内容和数组B中的内容进行交换。(数组一样大)
这道题就跟交换两个值一样,把数组的每一个元素都交换,写成一个循环就好了。
int main() { int a[3] = { 0, 1, 2 }, b[3] = { 3, 4, 5 }, i = 0, change = 0; for (i = 0; i <= 2; i++) { change = a[i], a[i] = b[i], b[i] = change; } for (i = 0; i <= 2; i++) { printf("%d ", a[i]); } printf("\n"); for (i = 0; i <= 2; i++) { printf("%d ", b[i]); } return 0; }2、计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。·
在网上看各位小伙伴的方法都跟我的不一样,这里我用了一个取巧的方法,就是正数全加起来再减去全部负数。
int main() { float a = 0, b = 0,i=0; for (i = 1; i <= 99; i = i + 2) { a=a + (1 / i); } for (i = 2; i <= 100; i = i + 2) { b = b + (1 / i); } printf("%f", (a-b)); return 0; }要注意的是这里必须定义为浮点型,不然输出结果怎么看都是0啦
3、编写程序数一下1到 100 的所有整数中出现多少个数字9。
这道题目纠结了一小会,倒不是纠结如何判断哪个是存在9的数字,而是纠结再99这个问题上。因为99是算出现过两次9的,而我一直以为题目的意思是“出现过多少个包含9的数字”,于是还在代码中加了一串防止重复计数的代码,才发现是多虑啦。
#include<stdio.h> int main() { int i = 0, count = 0; for (i = 1; i <= 100; i++) { if (i % 10 == 9) { count++; } if (i / 10 == 9) { count++; } } printf("1到100中9的个数为%d", count); return 0; }需要注意的是,这里的第二条语句使用if语句或者使用else if语句会有截然不同的区别。使用if语句是正确答案,如果使用elseif语句,则结果会少算一个。造成这种结果的原因我认为是在99这个数字的判定上,elseif语句的存在使得这个数字只判断了一个9。改成if语句就好啦。