累计(有分数参与)
程序核心——循环语句
程序
#include<stdio.h>
int main()
{
int denominator,flag,i,n;
double item,sum;
printf("Enter n:");
scanf("%d",&n);
sum=0;
flag=1;
denominator=1;
for(i=1;i<=n;i++)
{
item=flag*1.0/denominator;
sum=sum+item;
flag=-flag;
denominator=denominator+2;
}
printf("Sum=%f
",sum);
return 0;
}
结果
Enter n:5
Sum=0.834921
--------------------------------
Process exited after 2.577 seconds with return value 0
请按任意键继续. . .
分析
重点:在item=flag*1.0/denominator;中
如果是1,那就是整数,整数除法1/2结果也会是整数,数学中答案是0.5,但是整型的不能保存0,5.因此会直接变成0.
如果是1.0那么就表示这个数是float类型,float与int运算,结果会变成float的方式存储。1.0/2就是0.5.