fork download
  1. #include <stdio.h>
  2.  
  3. // Body構造体の定義
  4. typedef struct {
  5. int id;
  6. int weight;
  7. int height;
  8. } Body;
  9.  
  10. // 2つのBody構造体を入れ替えるswap関数
  11. void swap(Body *a, Body *b) {
  12. Body temp = *a;
  13. *a = *b;
  14. *b = temp;
  15. }
  16.  
  17. int main() {
  18. // 構造体配列の初期化
  19. Body a[] = {
  20. {1, 65, 169},
  21. {2, 73, 170},
  22. {3, 59, 161},
  23. {4, 79, 175},
  24. {5, 55, 168}
  25. };
  26. int size = sizeof(a) / sizeof(a[0]);
  27. // 身長の降順に並べ替え
  28. for (int i = 0; i < size - 1; i++) {
  29. for (int j = 0; j < size - i - 1; j++) {
  30. if (a[j].height < a[j + 1].height) {
  31. swap(&a[j], &a[j + 1]); // データの入れ替え
  32. }
  33. }
  34. }
  35.  
  36. for (int i = 0; i < size; i++) {
  37. printf("%d\t%d\t%d\n", a[i].id, a[i].weight, a[i].height);
  38. }
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
4	79	175
2	73	170
1	65	169
5	55	168
3	59	161