南京理工大学 程序设计基础(Ⅰ) SPOC | 学校专有课程 编程作业 第7章作业
第一题:身高排序(100分)
题目内容:
给出 N 个人的编号、姓名、身高,然后按身高从小到大的顺序排列输出。
输入格式:
输入的第一行包括一个整数 N(1≤N≤100)表示人的个数;接下来有 N
行,每行包括编号,姓名,身高三个变量,用空格隔开,编号和姓名为长度不超过50的字符串,且仅包括数字和大小写字母,身高为整数。
输出格式:
按照身高从小到大的顺序输出,数据保证没有相同身高的人。
输入样例:
5
10001 Xiaoming 150
10002 Xiaohua 155
10003 Xiaodong 160
10004 Xiaogang 148
10005 Xiaohong 152
输出样例:
10004 Xiaogang 148
10001 Xiaoming 150
10005 Xiaohong 152
10002 Xiaohua 155
10003 Xiaodong 160
#include<iostream>
#include<string>
using namespace std;
class Student{
public:
int id;
string name;
int height;
};
int main() {
int n;
cin >> n;
Student studentArray[100];
for (int i = 0; i < n; i++) {
cin >> studentArray[i].id;
cin >> studentArray[i].name;
cin >> studentArray[i].height;
}
for (int j = 0; j < n - 1; j++) {
for (int k = 0; k < n - 1 - j; k++) {
if (studentArray[k].height > studentArray[k + 1].height) {
Student s = studentArray[k];
studentArray[k] = studentArray[k + 1];
studentArray[k + 1] = s;
}
}
}
for (int m = 0; m < n; m++) {
cout << studentArray[m].id << " " << studentArray[m].name << " " << studentArray[m].height << endl;
}
return 0;
}