C语言。等差数列求和。

C语言。数列求和。运行结果不正确。
请问该代码该如何更改呢?

//从键盘上输入n,计算1+2+3+……+n(等差数列)
//程序图
#include
int main()
{
    int n,m,sum;
    scanf("%d",&n);                 //n=10
    for(n>0;m=n%10;n=n/10)               //循环语句,一直加到n  //先执行语句一:i=1;再执行语句二:i<=n;最后语句3:i++ //for有两个(;;)!!!!//for语句()内最后一个条件不要加;

    { 
        sum = sum + m;              //循环体   
    }
    printf("sum=%d\n",sum);
    return 0;
}

参考如下:

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


如有帮助,欢迎点赞+采纳哈!

该回答引用ChatGPT

这段代码存在一些问题,需要进行修改:

1、变量 m 没有初始化。应该将 m 初始化为0。

2、变量 sum 没有初始化。应该将 sum 初始化为0。

3、for 循环条件语句错误。for 循环应该是从 1 到 n 进行求和,可以将循环条件改为 for(int i=1;i<=n;i++)。

修改后的代码如下:


#include <stdio.h>

int main()
{
    int n, sum = 0;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        sum += i;
    }
    printf("sum=%d\n", sum);
    return 0;
}