C语言中sum=1+2+...+n求和?

#include <stdio.h>int main (){ int n; int i=1; int sum=0; if (n>0) { while (i=1;i<=n;i++) { sum=sum+i; printf ("The sum is %d\n",sum); } } else if (n=0) { printf ("The sum is sum=0\n"); } else { printf ("There is no answer!!!"); }}

在运行时,老是报错,请大侠帮忙指正。小弟谢过了!!!

#include <stdio.h>

int main ()
{
int n;
int i=1;
int sum=0;
scanf("%d",&n);//没有输入n
if (n>0)
{
for (i=1;i<=n;i++)//你这是for的格式
{
sum=sum+i;
printf ("The sum is %d\n",sum);
}
}
else  if (n==0)//==判断
{
printf ("The sum is sum=0\n");
}
else
{
printf ("There is no answer!!!");
}
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-23
#include <stdio.h>

int main ()
{
    int n = 0;
    int i = 1;
    int sum = 0;

    printf("Input n:");
    scanf("%d", &n);
    if(n > 0)
    {
        for(i = 1; i <= n; i++)
        {
            sum = sum + i;
        }
        printf ("The sum is %d\n", sum);
    }
    else if(n == 0)
    {
        printf ("The sum is sum = 0\n");
    }
    else
    {
        printf ("There is no answer!!!");
    }

    return 0;
}

第2个回答  2014-08-23
while (i=1;i<=n;i++)

改成

for (i=1;i<=n;i++)追问

用while为啥会错?

追答

C语言中的while循环的语法是:

while(condition) { statement(s); }

这里声明(S)可能是一个单个语句或语句块。这种状况可能是任何表达式,真的是任何非零值。循环迭代时的情况是真实的。

当条件为假,程序的控制传递给紧随循环线。

流程图:

这里的关键点while循环的循环可能不会运行。当条件测试,结果是假的,循环体将被跳过,并且在while循环后的第一条语句将被执行。

本回答被提问者采纳
第3个回答  2014-08-23
n 从头到尾就没赋值吧。。 不赋值 你那个 if(n>0) 怎么判断的? 或者是说你这个代码有问题。。只能帮你到这了。。我也是初学。。 或者你告诉我 报错的在哪一行上
第4个回答  2014-08-23
while的用法用错
for (i=1;i<=n;i++)
才对
n 没赋值是0
只会跑到n=0那
另外,这是c语言不是c++
所以副档名请改.c追问

为什么这里用while错?

追答

因为语法问题

while (条件式) {

 指令一;

 指令二;

 指令三;

}

举例

  int i=1, sum=0, n=10;
  while (i<n)
  {
  sum=sum+i;
  printf ("The sum is %d\n",sum);
  i++;
  }

这样就会是从0加到9

相似回答