代码
#include <stdio.h>
#include <string.h>
int fun(int score[],int m, int below[])
{
int i,j=0,sum=0,aver;
for(i=0;i<9;i++){
sum+=score[i];
}
aver=sum/m;
for(i=0;i<9;i++){
if(score[i]<aver) {
below[j]=score[i];
j++;
}
}
return j;
}
void main()
{ int i,n,below[9];
int score[9];
for(i=0;i<9;i++)
scanf("%d",&score[i]);
n=fun(score,9,below);
for(i=0;i<n;i++)
printf("%d ",below[i]);
}
友情提示
1、这破题自己给的代码有问题 相信自己 你补全的代码没问题
你把它不让你改的已给出的代码修改一下就行 main改成void main或者int main加return 0;
2、疑惑为什么fun函数里面对数组进行赋值之后 没有经过返回 也没有使用指针 就在main函数里体现的同学看这里:
因为传递给fun函数的参数是数组的内存地址,而不是数组单个成员,传递地址之后是直接到数组内存地址上进行的修改,跟指针起到了同样的作用。(传递一个普通的整型、字符什么的除非是用到指针 否则是没有这样的效果的)
题目描述
本关任务:m
个人的成绩存放在 score
数组中,请编写函数 fun
,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的人数放在 below
所指的数组中。
注意:请勿改动主函数
main
和其它函数中的任何内容,仅在函数fun
中填入你编写的若干语句。
输入格式
个人成绩数组。
输出格式
低于平均分的成绩。
输入输出样例
输入1
10 20 30 40 50 60 70 80 90
输出1
10 20 30 40