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;
}