题解 | #成绩排序#
成绩排序
http://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
include<stdio.h>
include<string.h>
- struct grate{
- char str[1024];
- int n;
- };
- int main()
- {
- int m;
- while(scanf("%d",&m)!=EOF){
- int sequence;
- scanf("%d",&sequence);
- struct grate rec[m];
- char name;
- int number;
- for(int i=0;i<m;i++)
- {
- scanf("%s %d",&rec[i].str,&rec[i].n);
- }
- if(sequence==0) //high to low
- {
- char str1[1024];
- int n1;
- for(int i=0;i<m-1;i++){
- for(int j=0;j<m-1-i;j++){
- if(rec[j].n < rec[j+1].n){
- n1 = rec[j].n;
- rec[j].n = rec[j+1].n;
- rec[j+1].n = n1;
- strcpy(str1,rec[j].str);
- strcpy(rec[j].str,rec[j+1].str);
- strcpy(rec[j+1].str,str1);
- }
- }
- }
- for(int i=0;i<m;i++){
- printf("%s %d\n",rec[i].str,rec[i].n);
- }
- }
- else{ //low to high
- char str2[1024];
- int n2;
- for(int i=0;i<m-1;i++){
- for(int j=0;j<m-1-i;j++){
- if(rec[j].n > rec[j+1].n){
- n2 = rec[j].n;
- rec[j].n = rec[j+1].n;
- rec[j+1].n = n2;
- strcpy(str2,rec[j].str);
- strcpy(rec[j].str,rec[j+1].str);
- strcpy(rec[j+1].str,str2);
- }
- }
- }
- for(int i=0;i<m;i++){
- printf("%s %d\n",rec[i].str,rec[i].n);
- }
- }
- }
- return 0;
- }