#include <stdio.h> int main(void) { float x[100],sum=0,ave,a; int n=0,i; scanf("%f", &a); while(a>=0.0 && n<100) { sum+=a; x[n]= ; n++; scanf("%f", &a); } ave=sum/n; printf("ave = %.2f\n",ave); printf("-----------OUTPUT---------------\n"); for(i=0; i<n; i++) if(i<ave) printf("%.1f\n",x[i]); return 0;
时间: 2024-03-18 13:38:32 浏览: 79
这段代码有一些问题,我来帮您修改一下:
```c
#include <stdio.h>
int main(void)
{
float x[100], sum = 0, ave, a;
int n = 0, i;
scanf("%f", &a);
while (a >= 0.0 && n < 100)
{
sum += a;
x[n] = a; // 缺少了将输入的数存入数组的语句
n++;
scanf("%f", &a);
}
ave = sum / n;
printf("ave = %.2f\n", ave);
printf("-----------OUTPUT---------------\n");
for (i = 0; i < n; i++)
if (x[i] < ave) // 这里应该用 x[i] 来判断是否小于平均值
printf("%.1f\n", x[i]);
return 0;
}
```
主要修改如下:
1. 在输入的时候,没有将输入的数存入数组中,缺少了 `x[n] = a;` 这句话。因此,需要加上这句话,将输入的数存入数组中。
2. 在输出低于平均分的学生成绩时,应该使用 `x[i]` 来判断是否小于平均值,而不是使用 `i`。
另外,代码中的这一行 `if(i<ave)` 也需要修改,因为 `i` 是数组下标,与平均值的大小没有关系。您可以将其修改为 `if(x[i] < ave)`,来判断当前数是否小于平均值。
希望这样修改之后能够帮到您。
阅读全文