#include <stdio.h> average( ) {int j; float aver,sum; sum=0; for(j=0; ;j++) sum=sum+a[j]; aver= sum/n; ; //返回结果 } #define N 10 int main(void) {float x[N],pj; //变量pj储存N个数的平均值 int i; for(i=0;i<N;i++) //输入N个数 scanf("%f",&x[i]); ; //调用函数计算平均值 printf("%.3f\n",pj); }
时间: 2024-01-11 09:05:19 浏览: 75
C标准函数库
这段代码存在一些问题,例如函数average()没有定义形参n和a,也没有给出循环的结束条件,导致程序会一直计算sum直到出现不可预测的结果。此外,在main函数中,变量pj未被初始化,也没有调用average()函数来计算平均值。建议修改代码如下:
```
#include <stdio.h>
float average(float a[], int n) {
int j;
float aver = 0, sum = 0;
for(j = 0; j < n; j++) {
sum += a[j];
}
aver = sum / n;
return aver;
}
#define N 10
int main(void) {
float x[N], pj;
int i;
for(i = 0; i < N; i++) {
scanf("%f", &x[i]);
}
pj = average(x, N);
printf("%.3f\n", pj);
return 0;
}
```
修改后的代码中,average()函数加入了形参a和n,循环的结束条件也被明确指定为n。在main函数中,调用average()函数并将返回值赋给pj,最后输出平均值。
阅读全文