fork download
  1. #include <stdio.h>
  2.  
  3. typedef struct {
  4. int id;
  5. int weight;
  6. int height;
  7. } Body;
  8.  
  9. // データを入れ替えるためのswap関数
  10. void swap(Body *a, Body *b) {
  11. Body temp = *a;
  12. *a = *b;
  13. *b = temp;
  14. }
  15.  
  16. // 身長を基準に降順ソート
  17. void sortByHeightDescending(Body arr[], int size) {
  18. for (int i = 0; i < size - 1; i++) {
  19. for (int j = 0; j < size - i - 1; j++) {
  20. if (arr[j].height < arr[j + 1].height) {
  21. swap(&arr[j], &arr[j + 1]);
  22. }
  23. }
  24. }
  25. }
  26.  
  27. int main() {
  28. // データの初期化
  29. Body bodies[] = {
  30. {1, 65, 169},
  31. {2, 73, 170},
  32. {3, 59, 161},
  33. {4, 79, 175},
  34. {5, 55, 168}
  35. };
  36. int size = sizeof(bodies) / sizeof(bodies[0]);
  37.  
  38. // 身長を基準に降順にソート
  39. sortByHeightDescending(bodies, size);
  40.  
  41. // 結果を出力
  42. for (int i = 0; i < size; i++) {
  43. printf("%d, %d, %d\n", bodies[i].id, bodies[i].weight, bodies[i].height);
  44. }
  45.  
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0s 5252KB
stdin
Standard input is empty
stdout
4, 79, 175
2, 73, 170
1, 65, 169
5, 55, 168
3, 59, 161