学生信息包括,学号,姓名,年龄,成绩,编程读入30名学生的基本信息并根据学生信息排序,输入一个学号,输出该学生的基本情况。用c++实现
时间: 2023-08-03 12:06:52 浏览: 205
以下是 C++ 实现:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
struct Student {
int id;
string name;
int age;
int score;
};
bool cmp(Student s1, Student s2) {
return s1.id < s2.id;
}
int main() {
Student students[30];
// 读入学生信息
for (int i = 0; i < 30; i++) {
cout << "请输入第" << i+1 << "个学生的信息(学号 姓名 年龄 成绩): ";
cin >> students[i].id >> students[i].name >> students[i].age >> students[i].score;
}
// 根据学号排序
sort(students, students+30, cmp);
// 输出所有学生信息
for (int i = 0; i < 30; i++) {
cout << students[i].id << " " << students[i].name << " " << students[i].age << " " << students[i].score << endl;
}
// 查找学生信息
int search_id;
cout << "请输入要查找的学生的学号: ";
cin >> search_id;
int left = 0, right = 29;
while (left <= right) {
int mid = (left + right) / 2;
if (students[mid].id == search_id) {
cout << students[mid].id << " " << students[mid].name << " " << students[mid].age << " " << students[mid].score << endl;
break;
} else if (students[mid].id < search_id) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return 0;
}
```
代码中使用了一个结构体 `Student` 来保存学生的基本信息,然后使用 `sort` 函数和自定义的比较函数 `cmp` 对学生信息按照学号排序。在查找学生信息时,使用了二分查找算法。
阅读全文