Hm.韩 2022-03-04 17:15 采纳率: 75%
浏览 35
已结题

为什么没有输出啊,什么都没显示

img


#include<stdio.h>
int main()
{
    int n,i;
    float sum;
    scanf("%d",&n);
    for(sum=0,i=0;i<=n;i++)
        sum+=1/(i*(i+1));
    printf("%.2f",sum);
    return 0;
 } 

img

  • 写回答

5条回答 默认 最新

  • 谛凌 2022-03-04 17:20
    关注

    已经改好了

    • 看题目,n从1开始而不是0
    • for循环里面如果不改的话,那个地方始终小于0,而且全是整型运算,结果会向下取整(比如1/(1+2)它小于1,向下取整就是0),因而每次得到的都是0
    • 最后建议把sum改成double类型,float容易溢出,虽然本题数据量小并不会
    #include<stdio.h>
    int main()
    {
        int n,i;
        float sum;
        scanf("%d",&n);
        for(sum=0,i=1;i<=n;i++)   //看题目,n从1开始
            sum+=1.0/(i*(i+1));   //浮点数
        printf("%.2f",sum);
        return 0;
     } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 已采纳回答 3月4日
  • 创建了问题 3月4日