#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> int main() { void swap(char* in1, char* in2); char in[10][20] = {0}; int i,j; gets(in[0]); for (i = 1;i<5; i++) { gets(in[i]); } int k[5] = { 0 }, z[5] = { 0 }; for (i = 0; i < 5; i++) { int sig=0; int len = strlen(in[i]); for (j = 0; j < len; j++) { if (in[i][j] == ' ') { if (sig == 0) { z[i] = in[i][j + 1] - '0'; sig++; } else { k[i] = (in[i][j + 1] - '0') * 10 + (in[i][j + 2] - '0'); sig = 0; } } } } int p; for (i = 0; i < 4; i++) { for (j = 0; j < 4 - i; j++) { if (k[j] > k[j+1]) { swap(in[j], in[j + 1]); p = k[j]; k[j] = k[j + 1]; k[j + 1] = p; p = z[j]; z[j] = z[j + 1]; z[j + 1] = p; } else if (k[j] == k[j + 1]) { if (z[j] > z[j + 1]) { swap(in[j], in[j + 1]); p = z[j]; z[j] = z[j + 1]; z[j + 1] = p; } } } } for (i = 0; i < 4; i++) { for (j = 0; j < 4 - i; j++) { if (in[j][0] > in[j + 1][0]) { swap(in[j], in[j + 1]); } } } for (i = 0; i < 5; i++) { printf("%s\n", in[i]); } return 0; } void swap (char* in1, char* in2) { char t[20] = { 0 }; memcpy(t, in1, 20); memcpy(in1, in2, 20); memcpy(in2, t, 20); }