希望大家帮我看看,求围观,
#include<math.h>#include<stdio.h>
void main()
{
int i;
double sum,y;
sum=0;
for(i=1;i<=100;)
{
y=1/i;
if(i%2==0)
sum=sum-y;
else
sum=sum+y;
i++;
}
printf("%lf\n",sum);
}
我看了好久了,运行出来都是1希望大家帮我看看了 y=1/i;
改为
y=1.0/i; 这跟1和1。0有什么关系? 给你分析一下:
i 为整型,1也是,1/i 的结果还是整型。
i = 1 y = 1/i = 1/1 = 1
i = 2 y = 1/i = 1/2 = 0
i = 3 y = 1/i = 1/3 = 0
…………
所以 sum 最后等于 1 同意楼上的见解…… 就一个小问题
1/i 是整形的 整形的话会去掉小数部分所以
i = 1y = 1/1 = 1
i = 2y = 1 / 2 = 0.5 错应为是整形 所以会把小数点后的全部去掉就是0
i = 3 ......
所以sum = 1 + 0 + 0 + 0 +...... = 1
申请最佳啊 {:1_1:}
页:
[1]