描述 课间操时间到了,同学们笑着跳着走下楼,向操场跑去。操场有唯一的入口,进场时每位同学将自动被贴上序号标签,从1开始。进入操场后,同学们按照身高从低到高排队。输出排队后的学生信息。若身高相同,优先输出序号较小的学生信息。 输入描述 输入共2行。 第一行1个整数N(1<=N<=1000),表示进入操场的学生人数。 第二行N个范围在100到200之间的整数,分别表示先后进入操场学生身高。 输出描述 输出N行,每行包含两个用空格隔开的整数,第一个整数表示学生序号,第二个整数表示学生身高。C++题目
时间: 2024-04-08 09:28:37 浏览: 129
学校特色课间操方案设计
对于这个问题,你可以使用以下的C++代码来实现:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
struct Student {
int index;
int height;
};
bool compare(Student s1, Student s2) {
if (s1.height == s2.height) {
return s1.index < s2.index;
}
return s1.height < s2.height;
}
int main() {
int N;
std::cin >> N;
std::vector<Student> students(N);
for (int i = 0; i < N; i++) {
students[i].index = i + 1;
std::cin >> students[i].height;
}
std::sort(students.begin(), students.end(), compare);
for (int i = 0; i < N; i++) {
std::cout << students[i].index << " " << students[i].height << std::endl;
}
return 0;
}
```
你可以将上述代码保存到一个名为`student_sort.cpp`的文件中,并通过编译器编译运行。在运行时,首先输入一个整数表示学生人数N,然后输入N个整数表示学生身高。最终会按照要求输出排队后的学生信息。
希望这个代码能够解决你的问题。如果还有其他问题,请随时提问。
阅读全文