编写程序从键盘输入5个学生的信息,包括学生学号、姓名、性别、出生年月及成绩,用结构体数组保存学生的信息,要求用函数实现结构体数组的输入输出及求成绩最高学生的序号。
时间: 2023-12-16 07:21:24 浏览: 85
运用结构体数组与输入函数进行存放学生的学号姓名等数据
4星 · 用户满意度95%
好的,这是一个比较典型的结构体数组的输入输出及最值问题,请按照以下步骤操作:
1. 定义结构体类型
```c++
#include <iostream>
using namespace std;
struct Student {
int id; // 学号
string name; // 姓名
char sex; // 性别
string birth; // 出生年月
float score; // 成绩
};
```
2. 编写输入函数
```c++
void input(Student students[], int len) {
for(int i = 0; i < len; i++) {
cout << "请输入第" << i+1 << "个学生的学号、姓名、性别、出生年月及成绩:" << endl;
cin >> students[i].id >> students[i].name >> students[i].sex >> students[i].birth >> students[i].score;
}
}
```
3. 编写输出函数
```c++
void output(Student students[], int len) {
for(int i = 0; i < len; i++) {
cout << "第" << i+1 << "个学生的信息为:" << endl;
cout << "学号:" << students[i].id << endl;
cout << "姓名:" << students[i].name << endl;
cout << "性别:" << students[i].sex << endl;
cout << "出生年月:" << students[i].birth << endl;
cout << "成绩:" << students[i].score << endl;
}
}
```
4. 编写求最值函数
```c++
int findMax(Student students[], int len) {
int maxIndex = 0;
float maxScore = students[0].score;
for(int i = 1; i < len; i++) {
if(students[i].score > maxScore) {
maxIndex = i;
maxScore = students[i].score;
}
}
return maxIndex;
}
```
5. 主函数调用
```c++
int main() {
const int len = 5;
Student students[len];
input(students, len);
output(students, len);
int maxIndex = findMax(students, len);
cout << "成绩最高的学生是第" << maxIndex+1 << "个学生,成绩为:" << students[maxIndex].score << endl;
return 0;
}
```
这样就完成了结构体数组的输入输出及最值问题。
阅读全文