|
|
发表于 2023-11-2 15:38:01
|
显示全部楼层
问题出在变量sum没有初始化。在C语言中,如果一个变量没有被初始化,它的初始值是不确定的,可能是一个随机值。在这段代码中,变量sum没有被初始化,所以它的初始值是不确定的。这就导致了程序的运行结果不正确。
为了解决这个问题,我们需要在变量sum的声明处给它一个初始值。在这个代码中,我们可以将sum的初始值设为0,即sum = 0;。这样,在后续的计算中,sum的值就会正确地累加每个学生的分数。
修改后的代码如下:
- #include <stdio.h>
- int main(void)
- {
- int s, a, sum = 0, n; // 初始化sum为0
- a = 0;
- float p;
- printf("the number of students:");
- scanf("%d", &n);
- if (n <= 0)
- {
- sum = 0;
- printf("the scores:");
- printf("average=%.2f", sum);
- }
- else
- {
- printf("the scores:");
- do
- {
- scanf("%d", &s);
- sum += s;
- a++;
- } while (a < n);
- p = 1.0 * sum / n;
- printf("average=%.2f", p);
- }
- return 0;
- }
复制代码
通过给sum变量初始化为0,我们可以确保程序运行时sum的初始值是确定的,从而得到正确的结果。 |
|