7-8 計算平均成績 (15分)
給定N個學生的基本信息,包括學號(由5個數字組成的字符串)、姓名(長度小於10的不包含空白字符的非空字符串)和成績([0,100]區間內的整數),要求計算他們的平均成績,並順序輸出平均線以下的學生名單。
輸入格式:
輸入在一行中給出正整數N(≤10)。隨後N行,每行給出一位學生的信息,格式爲“學號 姓名 成績”,中間以空格分隔。
輸出格式:
首先在一行中輸出平均成績,保留2位小數。然後按照輸入順序,每行輸出一位平均線以下的學生的姓名和學號,間隔一個空格。
輸入樣例:
5
00001 zhang 70
00002 wang 80
00003 qian 90
10001 li 100
21987 chen 60
輸出樣例:
80.00
zhang 00001
chen 21987
思路:
定義Student類,包含id,score,name等變量,定義Student類vector,再進行讀入,將每次讀入的成績求和,最後取平均,遍歷vector,將成績高於平均分的學生展示其信息
代碼:
#include <bits/stdc++.h>
using namespace std;
struct Student{
string id;
int score;
string name;
};
int main() {
float n,sum=0,aver;
cin>>n;
vector<Student>a;
Student s;
for (int i = 0; i < n; ++i) {
cin>>s.id>>s.name>>s.score;
a.push_back(s);
sum+=s.score;
}
aver=sum/n;
printf("%.2f\n",aver);
for (int j = 0; j < n; ++j) {
if(a[j].score<aver)cout<<a[j].name<<" "<<a[j].id<<endl;
}
return 0;
}