回 帖 发 新 帖 刷新版面

主题:C语言  自己找不到哪里错

#include<stdio.h>
void main()
{    
    int i,n;
    int sum=0;
    printf("输入一个值:\n");/*求sum=1+1/2+1/3+1/4....1/n的值*/
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        sum=sum+(1/i);
        
    }
    printf("Sum的值=%d\n",sum);
    

}

回复列表 (共4个回复)

沙发


结果都sum=1

板凳

#include<stdio.h>
void main()
{    
    int i,n;
    float sum=0.0;
    printf("输入一个值:\n");/*求sum=1+1/2+1/3+1/4....1/n的值*/
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        sum=sum+(float)(1/i);
        
    }
    printf("Sum的值=%.2f\n",sum);
    

}

 这样还是不行 ,大家帮忙看看

3 楼

sum=sum+(float)(1/i);//有问题,换为sum = sum + 1.0 / i;
(float)(1 / i),先计算(1 / i),然后类型转换,前者为0,转换后依旧为0、lz细心。

4 楼


先谢谢了,下次尽量注意这种问题,不禁感激

我来回复

您尚未登录,请登录后再回复。点此登录或注册