例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.

猜你喜欢

转载自www.cnblogs.com/5236288kai/p/10531441.html
2-8
今日推荐