题解 | #成绩排序#

成绩排序

http://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

  1. include<stdio.h>

  2. include<string.h>

  3. struct grate{
  4. char str[1024];
  5. int n;
  6. };
  7. int main()
  8. {
  9. int m;
  10. while(scanf("%d",&m)!=EOF){
  11. int sequence;
  12. scanf("%d",&sequence);
  13. struct grate rec[m];
  14. char name;
  15. int number;
  16. for(int i=0;i<m;i++)
  17. {
  18. scanf("%s %d",&rec[i].str,&rec[i].n);
  19. }
  20. if(sequence==0) //high to low
  21. {
  22. char str1[1024];
  23. int n1;
  24. for(int i=0;i<m-1;i++){
  25. for(int j=0;j<m-1-i;j++){
  26. if(rec[j].n < rec[j+1].n){
  27. n1 = rec[j].n;
  28. rec[j].n = rec[j+1].n;
  29. rec[j+1].n = n1;
  30. strcpy(str1,rec[j].str);
  31. strcpy(rec[j].str,rec[j+1].str);
  32. strcpy(rec[j+1].str,str1);
  33. }
  34. }
  35. }
  36. for(int i=0;i<m;i++){
  37. printf("%s %d\n",rec[i].str,rec[i].n);
  38. }
  39. }
  40. else{ //low to high
  41. char str2[1024];
  42. int n2;
  43. for(int i=0;i<m-1;i++){
  44. for(int j=0;j<m-1-i;j++){
  45. if(rec[j].n > rec[j+1].n){
  46. n2 = rec[j].n;
  47. rec[j].n = rec[j+1].n;
  48. rec[j+1].n = n2;
  49. strcpy(str2,rec[j].str);
  50. strcpy(rec[j].str,rec[j+1].str);
  51. strcpy(rec[j+1].str,str2);
  52. }
  53. }
  54. }
  55. for(int i=0;i<m;i++){
  56. printf("%s %d\n",rec[i].str,rec[i].n);
  57. }
  58. }
  59. }
  60. return 0;
  61. }
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务