[C语言]成绩与平均分问题:编写函数ReadScore()和Average(),输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩高于平均分的学生人数。
输入输入若干个整数,相邻两项之间用一个空格隔开。输出输出成绩高于平均分的学生人数。输入示例70 90 58 -5输出示例1数据范围输入和输出均为int范围的整数#include <stdio.h>#include <stdlib.h>#include<string.h>int main() {int a[40];printf("%d",Average(ReadS
·
输入
输入若干个整数,相邻两项之间用一个空格隔开。
输出
输出成绩高于平均分的学生人数。
输入示例
70 90 58 -5
输出示例
1
数据范围
输入和输出均为int范围的整数
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main() {
int a[40];
printf("%d",Average(ReadScore(a),a));
return 0;
}
int ReadScore(int a[]){ //读取分数数据的函数
int i,x;
for(i=0;i<40;i++){ //输入数组各值
scanf("%d",&x);
if(x<0){
break; //检测到负数则终止循环
}
else{
a[i]=x; //否则继续赋值
}
}
return i;
}
int Average(int n,int a[]){ //求高于平均分人数的计数函数
int count=0,i,sum=0,aver;
for(i=0;i<n;i++){
sum=sum+a[i]; //先由叠加求平均分
}
aver=sum/n;
for(i=0;i<n;i++){ //然后由分支条件叠加来控制计数
if(a[i]>aver){
count=count+1;
}
}
return count;
}
解析见代码块:
解法不唯一,仅供参考
更多推荐

所有评论(0)