我敲代码敲到晕头转向啦,求助求助啊~
4. 让用户输入学生的人数n,然后输入这n个学生的语文成绩,保存在数组中。然后分别计算输出:
(1)统计语文成绩平均分。
(2)不及格的学生序号及成绩、并统计不及格人数。
(3)最高分的成绩及最高分的学生的序号。
4. 让用户输入学生的人数n,然后输入这n个学生的语文成绩,保存在数组中。然后分别计算输出:
(1)统计语文成绩平均分。
(2)不及格的学生序号及成绩、并统计不及格人数。
(3)最高分的成绩及最高分的学生的序号。
2015-11-19
// bug: 多个最高分只记录了一个
#include <iostream>
#include <map>
using namespace std;
int main()
{
int N; std::cin >> N;
int *score = new int[N];
int sum = 0;
float average = 0.0;
map<int, int> failMap;
int highest[2] = { 0 };
for (int i = 0; i < N; ++i) {
cin >> score[i];
sum += score[i];
if(score[i]>highest[1]){
highest[0] = i;
highest[1] = score[i];
}
if(score[i] < 60){
failMap.insert(make_pair(i, score[i]));
}
}
average = static_cast<float>(sum) / static_cast<float>(N);
cout << "(1)语文成绩平均分" << endl;
cout << average << endl;
cout << "(2)不及格学生序号及成绩" << endl;
for (auto x : failMap)
cout << "序号:" << x.first << " 成绩:" << x.second << endl;
cout << "不及格人数:" << failMap.size() << endl;
cout << "(3)最高分学生序号及成绩" << endl;
cout << "序号:" << highest[0] << " 成绩:" << highest[1] << endl;
return 0;
}举报