#牛客在线求职答疑中心#第四届上海理工大学程序设计全国挑战赛题解
全部评论
第四届上海理工大学程序设计全国挑战赛题解 题目描述: 给定一个长度为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
点赞
送花
回复
分享
发布于 05-15 21:08 此内容由AI生成

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务