#include <stdio.h> int main() { int a[10],i; /************found************/ int aver,s; for(i=0;i<10;i++) scanf("%d",&a[i]); /************found************/ s = 0; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is:%.2f\n", aver); }哪里错了
时间: 2023-07-07 18:46:27 浏览: 99
#include<stdio.h>
这段代码有几个问题:
1. 在代码开头,应该将两行代码合并为一行,即 `#include <stdio.h>`。
2. 在第5行应该声明 `aver` 和 `s` 为整数类型,因为后面计算平均值和总和时使用的是整数除法。
3. 在第9行应该将变量`s`初始化为0,否则它的值将是一个垃圾值。
4. 在第12行,循环变量`i`的初始值应该为0,而不是1,因为数组的下标是从0开始的。并且循环的结束条件应该是`i<10`,而不是`i<=10`。
5. 计算平均值时,应该将`aver`定义为浮点型,并将总和`s`转换为浮点型,以避免整数除法的问题。
下面是修改后的代码:
```c
#include <stdio.h>
int main() {
int a[10], i, s = 0;
float aver;
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < 10; i++) {
s += a[i];
}
aver = (float)s / 10;
printf("The aver is: %.2f\n", aver);
return 0;
}
```
在这个修改后的代码中,我将平均值`aver`定义为浮点型,并在计算平均值时将总和`s`强制转换为浮点型。此外,我还将循环变量`i`的初始值改为0,并将循环的结束条件改为`i<10`。
阅读全文