班级数据包括班级号整形班级名最多20个字符没有空格分隔学生数整形输入n组(n小于10)班级数据按照班级学生数由小到大排列输出假设不存在相同学生数量的班级的C++代码
时间: 2024-05-06 11:17:49 浏览: 51
(C++)班级管理系统
3星 · 编辑精心推荐
以下是一个简单的实现:
```c++
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
struct ClassInfo {
int classNum;
char className[21];
int studentNum;
};
bool cmp(ClassInfo a, ClassInfo b) {
return a.studentNum < b.studentNum;
}
int main() {
int n;
cin >> n;
ClassInfo* classes = new ClassInfo[n];
for (int i = 0; i < n; i++) {
cin >> classes[i].classNum >> classes[i].className >> classes[i].studentNum;
}
sort(classes, classes + n, cmp);
for (int i = 0; i < n; i++) {
cout << classes[i].classNum << " " << classes[i].className << " " << classes[i].studentNum << endl;
}
delete[] classes;
return 0;
}
```
首先定义了一个结构体 `ClassInfo`,包含班级号、班级名和学生数。然后定义了一个比较函数 `cmp`,用于排序时按照学生数从小到大排序。在 `main` 函数中,先读入班级数据,然后使用 `sort` 函数对班级数组进行排序,最后输出排序后的班级信息。注意在程序结束前要释放动态分配的内存。
阅读全文