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