题目描述
用一维数组存储学号和成绩,然后,按成绩排序输出。
输入描述
输入第一行包括一个整数N(1<=N<=100),代表学生的个数。 接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。
输出描述
按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。 如果学生的成绩相同,则按照学号的大小进行从小到大排序。
程序代码
#include <iostream>
using namespace std;
int main()
{
int N, i, j;
cin >> N;
int sNo[N], score[N];
for(i=0; i<N; i++)
cin >> sNo[i] >> score[i];
for(i=0; i<N-1; i++)
for(j=0; j<N-1-i; j++)
if(score[j]<score[j+1])
{
swap(sNo[j], sNo[j+1]);
swap(score[j], score[j+1]);
}
for(i=N-1; i>=0; i--)
cout << sNo[i] << " " << score[i] << endl;
return 0;
}
void swap(int a, int b)
{
int c;
c=a; a=b; b=c;
}