.gr
swap(xx+i,xx+j);
}
void write(struct score *xx,int n)
{
int i,del=0;
printf("\t%3s \t%7s \t%6s\n","NO.","NUMBER","GRADE"
;
for(i=1;i<=n;i++)
{
printf("\t%03d \t%07d \t%6d\n",i-del,xx[i-1].sn,xx[i-1].gr); //t%03d 前面使用0填充
if( i>2 && xx[i-1].gr==xx.gr )
del++;//del的作用是记录有多少个后面分数和前面分数相同的情况,以此打印出名次
}
}
其实我觉得输出排名的话,分数相同的名次需要为相同,所以自己根据实际情况来写的。
随便截取一段输出:
013 0006584 72
014 0009995 69
014 0006321 69
015 0008878 64
016 0003032 60
016 0005937 60
017 0003878 59
018 0005561 58
019 0007390 57
020 0001646 47
021 0003593 46
022 0002721 44
022 0003184 44
023 0003332 43
023 0002228 43
024 0000093 38
024 0005249 38
025 0007824 37
026 0000686 36
027 0005196 35
028 0004313 34
028 0009900 34
029 0005050 31
030 0002798 30
031 0003546 25
032 0008349 23
033 0002041 21
034 0003033 20
034 0003658 20
034 0002318 20
035 0002399 19
036 0006796 15
037 0007370 14
038 0009860 12
039 0001499 10
[Last edited by tjpm on 2009-6-11 at 23:19]