小白求助C语言作业问题,问题是1+1/2+1/3+.....+...... 输入n的具体值,求和

#include<stdio.h>
int main()
{
int n,a,sum;
sum=0;
printf("Enter n\n");
scanf("%d",n);

for(a=0;a<=n;a++)
{sum=sum+(1/a)};

{printf("sum=%d",sum)};
return 0;
}

我的不行,呜呜

把所有变量设为int型不正确,会丢掉小数部分,导致结果错误,scanf中漏了一个&,还有几处分号位置有问题,正确代码如下:

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

可以运行了,为什么小数点变成#j

可以运行了,为什么小数点变成#j

追答

什么#j?请把你的代码及运行情况截图上来,以下是我的运行截图:

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-10-17
你写的什么鬼,我也刚学,跟你好多地方不一样,彼此交流一下吧
#include<stdio.h>
int main()
{
int n,i=1,sum=0;
printf("please input the n:\n");
scanf("%d",&n);
while(i<=n)
{
sum+=i;
i++;
}
printf("%d",sum);
}追问

你用while的哦,我的解决了…为毛只能采纳一个

追答

采纳谁的倒无所谓,问题解决了就好

相似回答