fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct _student {
  5. int student;
  6. int score;
  7. } student;
  8.  
  9. void pp(student*a,int n)
  10. {
  11. int i;
  12. for(i=0; i<n; i++)
  13. printf("student[%d]:%d\n",a[i].student,a[i].score);
  14. putchar('\n');
  15. }
  16.  
  17. int comp(void const *x,void const *y)
  18. {
  19. return ((student*)y)->score - ((student*)x)->score;
  20. }
  21.  
  22. int main()
  23. {
  24. int i;
  25. char s[100];
  26. student data[100];
  27.  
  28. for(i=0;; i++) {
  29. printf("student[%d]:",i+1);
  30. fgets(s,100,stdin);
  31. if(s[0]=='\n')break;
  32. sscanf(s,"%d",&data[i].score);
  33. data[i].student=i+1;
  34. }
  35. qsort(data,i,sizeof(data[0]),comp);
  36.  
  37. puts("------------------------");
  38. puts("成績順にソートしました。");
  39. puts("------------------------");
  40.  
  41. pp(data,i);
  42.  
  43. return 0;
  44. }
Success #stdin #stdout 0.01s 1724KB
stdin
3
4
9
2
1

stdout
student[1]:student[2]:student[3]:student[4]:student[5]:student[6]:------------------------
成績順にソートしました。
------------------------
student[3]:9
student[2]:4
student[1]:3
student[4]:2
student[5]:1