函数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); }
时间: 2023-11-27 09:51:36 浏览: 376
完成代码如下:
```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;
}
```
相关问题
函数average的功能是求数组a中n个元素的平均值并返回,请填空完成相应功能。 #include <stdio.h> float average( int a[],int n ) {int j; float aver,sum; sum=0; for(j=0; j<n ;j++) sum=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=fun(x[],N) ; //调用函数计算平均值 printf("%.3f\n",pj); }检验错误并指正
以下是存在错误并已修改的代码:
```c
#include <stdio.h>
float average(int a[], int 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]);
pj = average(x, N); //调用函数计算平均值
printf("%.3f\n", pj);
return 0;
}
float average(int a[], int n) {
int j;
float aver, sum;
sum = 0;
for (j = 0; j < n; j++)
sum = sum + a[j];
aver = sum / n;
return aver; //返回结果
}
```
代码中存在以下错误:
1. `pj=fun(x[],N);` 应该改为 `pj=average(x, N);`,调用函数时不需要在函数名后面加括号,需要传入的参数应该是数组名x和数组元素个数N。
2. 函数average的定义应该放在main函数前面,或者在main函数前面加上函数原型声明。
3. `return 0;`应该加上,表示程序正常结束。
4. 在函数average中,变量aver没有被使用,可以去掉。
修改后的代码如下:
#include <stdio.h> #include <string.h> int fun(int score[], int m, int below[]) { int i, j = 0 ; float aver = 0.0 ; for(i = 0 ; i < m ; i++) aver += score[i] ; aver /= (float) m ; for(i = 0 ; i < m ; i++) /**************found**************/ if(score[i] < aver) below[j++] = ___1___ ; return j ; } main() { int i, n, below[9] ; int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ; /**************found**************/ n = fun(score, 9, ___2___) ; printf( "\nBelow the average score are: " ) ; /**************found**************/ for (i = 0 ; i < n ; i++) printf("%d ", ___3___) ; }
根据程序填空题的要求,在 ___1___、___2___、___3___ 的位置填上合适的代码。
根据程序的语义和结构,可以推测出正确的代码如下:
```
#include <stdio.h>
#include <string.h>
int fun(int score[], int m, int below[]) {
int i, j = 0;
float aver = 0.0;
for (i = 0; i < m; i++)
aver += score[i];
aver /= (float)m;
for (i = 0; i < m; i++)
if (score[i] < aver) below[j++] = score[i]; // ___1___
return j;
}
int main() {
int i, n, below[9];
int score[9] = { 10, 20, 30, 40, 50, 60, 70, 80, 90 };
n = fun(score, 9, below); // ___2___
printf("\nBelow the average score are: ");
for (i = 0; i < n; i++)
printf("%d ", below[i]); // ___3___
return 0;
}
```
解释如下:
在程序中,fun 函数的功能是查找分数数组中低于平均分的分数,并将它们存储在另一个数组中。
在 fun 函数中,我们首先计算分数数组中所有分数的平均值。然后,我们遍历分数数组,将低于平均分的分数存储在 below 数组中,并使用 j 变量来跟踪下面的分数的数量。
在 main 函数中,我们定义一个整数数组 score,其中包含 9 个分数。我们还定义了另一个整数数组 below,将用于存储低于平均分的分数。我们将调用 fun 函数,将分数数组和 below 数组作为参数传递给它,并将返回的值存储在 n 中。最后,我们使用 for 循环打印 below 数组中的所有元素。
阅读全文