例2-8 累计(含分数)

累计(有分数参与)

程序核心——循环语句

程序

#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\n",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.

posted on 2019-03-14 17:00  凯*凯  阅读(95)  评论(0编辑  收藏  举报

导航