2. 编写程序,用结构体存放学生信息若干,包括学号、姓名和3门课程的分数,从键盘输入数据,输出每门课程的分数,以及最高分的学生的完整数据。
时间: 2024-02-28 17:52:11 浏览: 125
好的,我可以帮您编写这个程序。以下是代码:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Student {
int id; // 学号
string name; // 姓名
int score[3]; // 3门课程的分数
};
int main() {
const int NUM = 3; // 学生数量
Student stu[NUM];
int maxScore = 0; // 最高分数
int maxIndex = 0; // 最高分数学生的下标
// 输入学生信息
for (int i = 0; i < NUM; i++) {
cout << "请输入第" << i + 1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> stu[i].id;
cout << "姓名:";
cin >> stu[i].name;
cout << "3门课程的分数(用空格分隔):";
for (int j = 0; j < 3; j++) {
cin >> stu[i].score[j];
}
cout << endl;
}
// 输出每门课程的分数
cout << "每门课程的分数:" << endl;
for (int i = 0; i < 3; i++) {
cout << "第" << i + 1 << "门课程的分数为:";
for (int j = 0; j < NUM; j++) {
cout << stu[j].score[i] << " ";
}
cout << endl;
}
// 找到最高分数的学生
for (int i = 0; i < NUM; i++) {
int sum = 0;
for (int j = 0; j < 3; j++) {
sum += stu[i].score[j];
}
if (sum > maxScore) {
maxScore = sum;
maxIndex = i;
}
}
// 输出最高分数的学生信息
cout << "最高分数的学生信息:" << endl;
cout << "学号:" << stu[maxIndex].id << endl;
cout << "姓名:" << stu[maxIndex].name << endl;
cout << "3门课程的分数:";
for (int i = 0; i < 3; i++) {
cout << stu[maxIndex].score[i] << " ";
}
cout << endl;
return 0;
}
```
运行程序后,您可以依次输入每个学生的信息,程序会输出每门课程的分数和最高分数的学生信息。
阅读全文