質問編集履歴

2

2020/07/23 05:20

投稿

morumotto
morumotto

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- 構造体の配列の身長を降順に並べ替えて再度表示し直すプログラムを作りたいのですが、実行すると、エラーは起きないのにソート後のputs関数、printf関数が表示されません。ソート関数に問題があるのか、原因がわからないです。初めてで質問の仕方に拙いところがあるかもしれませんが、お力添え頂けないでしょうか。。
1
+ 構造体を降順に並べ替えて再度表示し直すプログラムを作りたいのですが、実行すると、エラーは起きないのにソート後のputs関数、printf関数が表示されません。ソート関数に問題があるのか、原因がわからないです。初めてで質問の仕方に拙いところがあるかもしれませんが、お力添え頂けないでしょうか。。
2
2
 
3
3
 
4
4
 

1

2020/07/23 05:20

投稿

morumotto
morumotto

スコア0

test CHANGED
File without changes
test CHANGED
@@ -8,136 +8,6 @@
8
8
 
9
9
  ```ここに言語名を入力
10
10
 
11
- #include <stdio.h>
12
-
13
- #include <stdlib.h>
14
-
15
-
16
-
17
- typedef struct __physcheck{
18
-
19
- char name[20];
20
-
21
- int height;
22
-
23
- double vision;
24
-
25
- }PhysCheck;
26
-
27
-
28
-
29
- void quick_height(PhysCheck a[], int left, int right){
30
-
31
- int pl = left;
32
-
33
- int pr = right;
34
-
35
- PhysCheck x = a[(pl+pr)/2];
36
-
37
-
38
-
39
- PhysCheck temp;
40
-
41
-
42
-
43
- while(pl<=pr){
44
-
45
-
46
-
47
- while(a[pl].height > x.height) pl++;
48
-
49
- while(a[pr].height < x.height) pr--;
50
-
51
-
52
-
53
- if(pl<pr){
54
-
55
- temp = a[pl];
56
-
57
- a[pl] = a[pr];
58
-
59
- a[pr] = temp;
60
-
61
- pl++;
62
-
63
- pr--;
64
-
65
- }
66
-
67
- }
68
-
69
- if(left<pr) quick_height(a,left,pr);
70
-
71
- if(pl<right) quick_height(a,pl,right);
72
-
73
- }
74
-
75
-
76
-
77
- int main(void){
78
-
79
- int i;
80
-
81
- PhysCheck x[] = {
82
-
83
- {"AKASAKA Tadao",162,0.3},
84
-
85
- {"KATOH Tomiaki",173,0.7},
86
-
87
- {"SAITOH Syouji",175,2.0},
88
-
89
- {"TAKEDA Shinya",171,1.5},
90
-
91
- {"NAGAHAMA Masaki",168,0.4},
92
-
93
- {"HAMADA Tetsuaki",174,1.2},
94
-
95
- {"MATSUTOMI Akio",169,0.8},
96
-
97
- };
98
-
99
- int nx = sizeof(x)/sizeof(x[0]);
100
-
101
-
102
-
103
- puts("----------身体検査一覧表----------");
104
-
105
- puts(" 氏名        身長 視力   ");
106
-
107
- puts("---------------------------------");
108
-
109
- for(i=0;i<nx;i++){
110
-
111
- printf("%-18.18s%4d%5.1f\n",x[i].name,x[i].height,x[i].vision);
112
-
113
- }
114
-
115
-
116
-
117
- quick_height(x,0,nx-1);
118
-
119
-
120
-
121
- puts("-----身体検査一覧表(ソート後)------");
122
-
123
- puts(" 氏名        身長 視力   ");
124
-
125
- puts("---------------------------------");
126
-
127
- for(i=0;i<nx;i++){
128
-
129
- printf("%-18.18s%4d%5.1f\n",x[i].name,x[i].height,x[i].vision);
130
-
131
- }
132
-
133
-
134
-
135
-
136
-
137
- return EXIT_SUCCESS;
138
-
139
- }
140
-
141
11
 
142
12
 
143
13