fork download
  1. #include <stdio.h>
  2.  
  3. struct Body {
  4. int id;
  5. int weight;
  6. int height;
  7. };
  8.  
  9. /* 構造体を入れ替える swap 関数 */
  10. void swap(struct Body *x, struct Body *y)
  11. {
  12. struct Body temp;
  13. temp = *x;
  14. *x = *y;
  15. *y = temp;
  16. }
  17.  
  18. int main(void)
  19. {
  20. int i, j;
  21.  
  22. /* 構造体配列の初期化(←課題で指定された値に合わせてね) */
  23. struct Body a[] = {
  24. {1, 65, 169},
  25. {2, 73, 170},
  26. {3, 59, 161},
  27. {4, 79, 175},
  28. {5, 55, 168}
  29. };
  30.  
  31. int n = sizeof(a) / sizeof(a[0]);
  32.  
  33. /* 身長の逆順(高い順)に整列 */
  34. for (i = 0; i < n - 1; i++) {
  35. for (j = i + 1; j < n; j++) {
  36. if (a[i].height < a[j].height) {
  37. swap(&a[i], &a[j]);
  38. }
  39. }
  40. }
  41.  
  42. /* 表示 */
  43. for (i = 0; i < n; i++) {
  44. printf("ID=%d 体重=%d 身長=%d\n",
  45. a[i].id, a[i].weight, a[i].height);
  46. }
  47.  
  48. return 0;
  49. }
  50.  
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
ID=4 体重=79 身長=175
ID=2 体重=73 身長=170
ID=1 体重=65 身長=169
ID=5 体重=55 身長=168
ID=3 体重=59 身長=161