目录
解题分析第一步:
- 首先观察计算式可以得:分子不变一直是1,分母从0~100依次增大;
- 然后重点是分母的变化是正负交替,奇正偶负;
- 根据分析,首先我可以写出一个1~100相加的代码:
#include<stdio.h>
int main() {
int i = 0;
int sum = 0;
for (i = 1; i <= 100; i++) {
sum = sum + i;
}
printf("%d", sum);
return 0;
}
解题分析第二步:
- 接下来经过分析,题目所求的算式和上述代码的差别就是,将整数变成分数,并且正负号交替出现;
- 如此,需要多定义两个变量,一个用来作为计算式赋值,一个用来改变正负号;
- 接下来写的代码如下:
#include<stdio.h>
int main() {
int i = 0;
int sum = 0;
int tmp = 1;
int flag = 1;
for (i = 1; i <= 100; i++) {
tmp = 1 / i * flag;
sum = sum + tmp;
flag = flag * (-1);
}
printf("%d", sum);
return 0;
}
解题分析第三步:
- 正当我以为大功告成的时候,看着运行结果:1; 眉头一皱,发现事情并不简单;
- 首先,这个值我掐指一算它是错的~~!!!!!!! 除数的值为小数,数据类型定义出错!!!!!
- 其次,别忘了double输出的时候,不是"%d"是"%lf";
- 至此,代码圆满,如下:
#include<stdio.h> int main() { int i = 0; double sum = 0; double tmp = 1; int flag = 1; for (i = 1; i <= 100; i++) { tmp = 1.0/ i * flag; sum = sum + tmp; flag = flag * (-1); } printf("%lf\n", sum); return 0; }
又是心情粉粉的一刻~~~~~~biubiu~~~ ^-^