编写程序:从键盘输入2024级计算机类学生某门课的成绩(学生人数不超过60人),当输入为负时,表示输入结束,试编程①计算并打印最高分②将分数按从高到低顺序进行排序输出
时间: 2024-12-16 22:23:09 浏览: 3
为了编写这个程序,我们可以使用C++语言,因为它支持动态数组,并且可以方便地从键盘输入数据。下面是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含排序算法
int main() {
std::vector<int> scores; // 创建一个存储成绩的向量
int score;
char input;
std::cout << "请输入2024级计算机类学生某门课的成绩(输入负数结束输入):\n";
while (true) {
std::cin >> score;
if (score < 0) break; // 当输入为负数时,跳出循环
scores.push_back(score); // 将成绩添加到向量中
}
// 计算并打印最高分
if (!scores.empty()) {
int max_score = *std::max_element(scores.begin(), scores.end());
std::cout << "最高分为: " << max_score << "\n";
} else {
std::cout << "没有输入任何成绩。\n";
}
// 按照从高到低排序并输出
std::sort(scores.begin(), scores.end(), std::greater<int>()); // 使用greater模板函数降序排序
std::cout << "成绩(从高到低):\n";
for (const auto& s : scores) {
std::cout << s << " ";
}
std::cout << "\n";
return 0;
}
```
在这个程序中,我们使用`std::vector`来代替数组,因为它的大小可以根据需要动态调整。通过`std::cin`读取用户的输入,直到遇到负数为止。接着,我们利用`std::max_element`找到最高分,使用`std::sort`对分数进行降序排序,最后打印出排序后的成绩。
阅读全文