爸爸给宝宝换尿布图片:这段程序错在哪里啊--C语言的--简单的很

来源:百度文库 编辑:中科新闻网 时间:2024/05/10 09:01:10
main()
{float a,b,n;
a=0,b=1;
scanf("%f",&n);
while(b<=n)
{b=b+1;
a=a+b;}
printf ("%f",a);
}
我的本意是想求从1加到n的和,
不要给我贴一个正确的,我只要知道我的错误

首先 a = 0, b = 1;虽然也可以达到效果,但是你的本意是两个赋值,所以应该写成:

a = 0;
b = 1;

另外你的 while 中是先给 b 加 1,然后再累加到 a 上的。所以你的 1 并没有被加上去就直接从 2 开始了。

所以你应该在前面赋值的时候写成:

b = 0;

或者在 while 中把两句的顺序换一下:

a = a + b;
b = b + 1;

另外,如果这样写程序会运行效率更高:

a += b;
b++;

a=0;b=1;
C语言不支持一行中用逗号分隔语句。

专家已经给出答案了。
另外,把float改成int吧