1148: 零起点学算法55——打印所有低于平均分的分数
Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 2456 Accepted: 777
[Submit][Status][Web Board]
Description
输入n个成绩,打印出所有低于平均分的分数(注意:ave = s/n中s 为float或ave = (float)s/n)。
Input
多个测试数据
每个测试数据一行,在这行中先输入分数的个数n(1<=n<=100),然后紧跟着输入n个整数(代表分数)
Output
对于每个测试数据,输出一行按照输入顺序输出所有低于(<)平均分的分数,中间用一个空格隔开,如果没有低于平均分的那么只输出一个空行
Sample Input
3 40 50 60
2 90 80
4 10 10 90 80
Sample Output
40
80
10 10
Source
1 #include<stdio.h> 2 int main(){ 3 int n,a[200],b[200]; 4 while(scanf("%d",&n)!=EOF){ 5 int s=0; 6 for(int i=0;i<n;i++){ 7 scanf("%d",&a[i]); 8 s+=a[i]; 9 } 10 float ave=(float)s/n; 11 int j=0; 12 for(int i=0;i<n;i++){ 13 if(a[i]<ave){ 14 b[j]=a[i]; 15 j++; 16 } 17 } 18 if(j==0) 19 printf(" "); 20 else{ 21 for(int i=0;i<j-1;i++){ 22 printf("%d ",b[i]); 23 } 24 printf("%d ",b[j-1]); 25 } 26 } 27 return 0; 28 }