#include <stdio.h> int main() { int n; while (scanf("%d", &n) != EOF) { int a[n][2]; int min = 101; int minIndex = 101; for (int i = 0; i < n; i++) { scanf("%d %d", &a[i][0], &a[i][1]); //n行,2列,第一个用来接受学号,第二个用来接受成绩 } //遍历a[n][1],找到当前最小的数,并且标记好下标 若该元素比min更小,就再次判断学号大小,最后 //放到前面 for (int i = 0; i < n; i++) { for(int j=i;j<n;j++) { if (a[j][1] < min) { //找到当前最小的下标和值 min = a[j][1]; minIndex = j; }else if(a[j][1] == min) { if( a[j][0] < a[minIndex][0]) { min = a[j][1]; minIndex = j; } } } int temp=a[i][1]; a[i][1]=a[minIndex][1]; a[minIndex][1]=temp; temp=a[i][0]; a[i][0]=a[minIndex][0]; a[minIndex][0]=temp; min = 101; minIndex = 101; } for(int i=0;i<n;i++) { printf("%d %d \n",a[i][0],a[i][1]); } } return 0; }