#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 10:05:19 浏览: 72
这段代码存在一些问题,例如函数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,最后输出平均值。
相关问题
#include <stdio.h> float aver(float a[ ]); int main() { float sco[5],av; int i; for(i=0;i<5;i++) scanf("%f",&sco[i]); av=aver(sco); printf("average score is %5.2f\n",av); return 0; } /* 请在这里填写答案 */
这段代码缺少函数`aver`的实现部分,需要补充如下代码:
```c
float aver(float a[]) {
float sum = 0;
for (int i = 0; i < 5; i++) {
sum += a[i];
}
return sum / 5;
}
```
该函数的作用是计算给定数组`a`的平均值,并将其返回。在`main`函数中,先读入5个浮点数存储在`sco`数组中,然后调用`aver`函数计算平均值并输出。
函数average的功能是求数组a中n个元素的平均值并返回,请填空完成相应功能。 #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); }
完成代码如下:
```c
#include <stdio.h>
float average(float a[], int n) {
int j;
float aver, sum;
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; //变量pj储存N个数的平均值
int i;
for(i = 0; i < N; i++) {
//输入N个数
scanf("%f", &x[i]);
}
pj = average(x, N); //调用函数计算平均值
printf("%.3f\n", pj);
return 0;
}
```
阅读全文