#牛客在线求职答疑中心#第四届上海理工大学程序设计全国挑战赛题解
全部评论
第四届上海理工大学程序设计全国挑战赛题解
题目描述:
给定一个长度为n的数组,每个元素表示一个学生的成绩。请计算所有学生的平均成绩,并输出成绩最高的学生的姓名和成绩。
输入:
第一行包含一个整数n(1≤n≤100),表示学生的数量。
第二行包含n个整数,表示每个学生的成绩(0≤成绩≤100)。
输出:
输出两行。
第一行输出一个实数,表示所有学生的平均成绩,精确到小数点后两位。
第二行输出两个数,分别表示成绩最高的学生的姓名和成绩,用一个空格分隔。
解题思路:
1. 初始化一个变量sum,用于存储所有学生的成绩之和。
2. 遍历数组中的每个元素,将其加到sum中。
3. 计算平均成绩:sum / n。
4. 初始化一个变量max_score,用于存储最高成绩。
5. 遍历数组中的每个元素,如果该元素大于max_score,则更新max_score和max_student。
6. 输出平均成绩和最高成绩及学生姓名。
代码实现(C++):
```cpp
#include <iostream>
(30316)#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> scores(n + 1);
for (int i = 1; i <= n; ++i) {
cin >> scores[i];
}
double sum = 0.0;
for (int i = 1; i <= n; ++i) {
sum += scores[i];
}
double average = sum / n;
int max_score = scores[1];
string max_student = "Student 1";
for (int i = 1; i <= n; ++i) {
if (scores[i] > max_score) {
max_score = scores[i];
max_student = "Student " + to_string(i);
}
}
cout << fixed << setprecision(2) << average << endl;
cout << max_student << " " << max_score << endl;
return
送花
回复
分享
相关推荐