输入

输入若干个整数,相邻两项之间用一个空格隔开。

输出

输出成绩高于平均分的学生人数。

输入示例

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;
}

解析见代码块:

解法不唯一,仅供参考

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐