fork download
  1. #include <stdio.h>
  2.  
  3. typedef struct {
  4. int id; // 学籍番号
  5. double height; // 身長
  6. } Student;
  7.  
  8. void sort(Student* p)
  9. {
  10. Student t;
  11. int i;
  12. int flag;
  13.  
  14. do {
  15. flag = 0;
  16. for (i = 0; i < 4; i++) {
  17. if (p[i].height > p[i+1].height) {
  18. t = p[i];
  19. p[i] = p[i+1];
  20. p[i+1] = t;
  21. flag = 1;
  22. }
  23. }
  24. } while (flag);
  25. }
  26.  
  27. int main()
  28. {
  29. Student student[5];
  30. int i;
  31.  
  32. for (i = 0; i < 5; i++) {
  33. printf("%d人目:\n", i + 1);
  34. printf("学籍番号:\n");
  35. scanf("%d", &student[i].id);
  36. printf("身長:\n");
  37. scanf("%lf", &student[i].height);
  38. }
  39. sort(student);
  40. printf("身長によるソート結果は以下の様になります.\n");
  41. for (i = 0; i < 5; i++) {
  42. printf("学籍番号%2d 身長%f\n", student[i].id, student[i].height);
  43. }
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0.01s 1724KB
stdin
12
165.9
59
178.8
28
158.2
32
170.2
2
168.2
stdout
1人目:
学籍番号:
身長:
2人目:
学籍番号:
身長:
3人目:
学籍番号:
身長:
4人目:
学籍番号:
身長:
5人目:
学籍番号:
身長:
身長によるソート結果は以下の様になります.
学籍番号28 身長158.200000
学籍番号12 身長165.900000
学籍番号 2 身長168.200000
学籍番号32 身長170.200000
学籍番号59 身長178.800000