打印分数
时间:0.2 空间:32M
题目描述:
输入n个成绩,打印出所有低于平均分的分数
输入格式:
多组测试数据, 每组测试数据一行,在这行中先输入分数的个数n(1<=n<=100),然后紧跟着输入n个整数(代表分数)
输出格式:
对于每组测试数据,输出一行, 按照输入顺序输出所有低于(<)平均分的分数,中间用一个空格隔开,如果没有低于平均分的那么只输出一个空行
样例输入:
3 40 50 60 2 90 80 5 10 10 90 80 80
样例输出:
40 80 10 10
这道题,我们可以首先算出这些分数的平均分,然后进行判断.如果这个分数小于算出来的平均分,那么就输出,注意了,计算平均分的这个变量不能是Int类型,因为平均分可能是小数,所以要写float/double.
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin>>n){ //重复输入
int a[n]; //a变量是这些分数的存储数组
float sum=0; //sum是这些分数的平均分
for(int i=0;i<n;i++){ //依次输入
cin>>a[i];
sum+=a[i]; //计算这些分数的和
}
sum/=n; //除以n求出平均分
for(int i=0;i<n;i++) //依次枚举
if(a[i]<sum) //判断是不是小于平均分
cout<<a[i]<<" "; //是的话就输出
cout<<endl; //换行
}
return 0;
}
输入输出:
3 40 50 60
40
2 90 80
80
5 10 10 90 80 80
10 10
该题链接:
XJOI 3564 打印分数https://xjoi.net/problem/3564