こんばんは。構造体の問題です。ご教授ください。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kfwjwuk
記事: 2
登録日時: 6年前

こんばんは。構造体の問題です。ご教授ください。

#1

投稿記事 by kfwjwuk » 6年前

投稿失礼いたします。
友人にファイルをもらったのですが、自分で作ったファイルのどこを
どういう理由でどのように変えたか分からないので教えていただきませんか。根本的に違うなら僕のファイルのどこが違うか指摘していただきませんか。
よろしくお願いします。
以下問題文です。

データファイル(rep_data.txt) には,「学籍番号,科目A,科
目B,科目C の各点数」が順に,学籍番号順に並んでいる.
そのデータファイルを元に,キーボードから入力された学籍番号の学生の成績(含:
3科目の合計点の順位)を表示するプログラムを作れ.
探索は二分探索を使い,ソートにはクイックソートを使うこと.
表示は以下のようにせよ.
Input A Student Number: 14【Enter】
Ranking : #269 /*最高得点は1位とせよ.*/
Subject A : 86
Subject B : 59.1
Subject C : 220.42
Total : 365.52

科目A の得点はint 型,科目B,C の得点はdouble 型で扱うこと.
合計点が同じになる学生はいないということは既知とせよ.
データの人数は1000 人であることもわかっているとせよ.
学籍番号には抜けがある.学籍番号が存在しない場合は,”No data”と表示するようにせよ.
雛型(122.c) を用いよ.main 関数は完成しているので,main 関数内で呼び出している関数を作成せよ.

自分が作ったファイルです。

#include <stdio.h>
#include <stdlib.h>
#define Num 1000
/* データの型は構造体により定義せよ */

struct student{
int No;

int rank;
int SubA;
double SubB;
double SubC;
double sum;
};

struct tree2 {
int value;
struct tree2* left;
struct tree2* right;
};
tree2 root = {0, &root, &root};


void readDataFile(struct student *Data){

FILE *fp;
int i;

if ((fp = fopen("rep_data.txt", "r")) == NULL) {
fprintf(stderr, "%s\n", "error: can't read file.");
return EXIT_FAILURE;
}


i = 0;
while (fscanf(fp, "%d,%d,%lf,%lf", &Data.No, &Data.SubA, &Data.SubB, &Data.SubC) != EOF){
Data.sum = (double)(Data.SubA + Data.SubB + Data.SubC);
i++;
}
data_count = i;
fclose(fp);
}

void QuickSort(struct student *Data,int left,int right){

int l = left;
int r = right;
int pivot = Data[(left + right) / 2];
int buf;

while (1) {
while (Data[l] < pivot) l++;
while (Data[r] > pivot) r--;

if (l > r) break;

buf = Data[l];
Data[l] = Data[r];
Data[r] = buf;

l++, r--;
};

if (left < r) quicksort(Data, left, r);
if (l < right) quicksort(Data, l, right);

}

struct student serchsum(int sum,struct student *Data){
int i;

for(i = 0; i < Num; i++){
InsertT(Data.sum);
}
PrintT(&root);

}



struct student serchNo(int No,struct student *Data){

int i;

for(i = 0; i < Num; i++){
InsertT(Data.sum);
}
PrintT(&root);

}

void PrintT(tree2 *p){
static int depth = 0;

if(p->right != NULL){
++depth;
PrintT(p->right);
--depth;
}
printf("%*c%d\n", 5 * depth, ' ', p->key);
if(p->left != NULL){
++depth;
PrintT(p->left);
--depth;
}
}

int InsertT(int Number) /* 2分木構造に格納する */
{
tree2 *pp, *new;

pp = &root; /* ルートの番地を格納 */
if(pp->left == &root || pp->right == &root){ /* 最初のデータ格納 */
pp->key = Number;
pp->left = NULL;
pp->right = NULL;
return(1);
}

if((new = (tree2 *)malloc(sizeof(tree2))) == NULL){
printf("領域を確保できません\n");
exit(1);
}
while(pp->key != Number){ /* 枝をたどって節を探す */
if(Number < pp->key){
if(pp->left == NULL){
pp->left = new;
break;
}
pp = pp->left; /* 次の節を探す */
}else{
if(pp->right == NULL){
pp->right = new;
break;
}
pp = pp->right; /* 次の節を探す */
}
}
if(pp->key == Number){ /* 登録済み */
free(new); /* 領域開放 */
return(0);
}
new->key = Number; /* 新しい節にデータを登録 */
new->left = NULL;
new->right = NULL;
return(1);
}


void writerank(){

}

int main(void){

struct student Data[Num],Result;

int No;
printf("Input A Student Number:");
scanf("%d",&No);

/*Dataを読みとる*/
readDataFile(Data);

/*入力されたNoを二分探索により探し,結果をResultに入れる*/
Result = serchNo(No,Data); /*ここではまだ順位は付いていない*/
/*順位を付けるために,合計点でソートする*/
Quicksort(Data,0,Num-1);

/*合計点が高い方から順位を付ける*/

writerank(Data);
/*Result.sumに入っている合計点を二分探索により探す*/

Result = serchsum(Result.sum,Data);/*ここで順位が含まれた結果が得られる*/
printf("Ranking : #%d\n",Result.rank);
printf("Subject A : %d\n",Result.SubA);
printf("Subject B : %.1f\n",Result.SubB);
printf("Subject C : %.2f\n",Result.SubC);
printf("Total : %.2f\n",Result.sum);
return 0;
}



友人のファイルです。




#include <stdio.h>
#include <stdlib.h> /*exit 関数を使用するために必要*/
#define Num 1000

/* データの型は構造体により定義せよ */
struct student{
int ID;
int SubA;
double SubB;
double SubC;
double sum;
int rank;

};

/*数値をいれかえる(double型を扱う)*/
void swap_d(double *a, double *b)
{
double c;
c=*a;
*a=*b;
*b=c;
}

/*数値をいれかえる(int型を扱う)*/
void swap_i(int *a, int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
}

void readDataFile(struct student *Data){
int i,scannum;

FILE *file = fopen("rep_data.txt","r");
if (file == NULL) { /*ファイルを正しく開けなかった場合*/
fprintf(stderr, "cannot open file\n");
exit(1); /*強制終了*/
}
for (i = 0; i < Num; i++) {
scannum = fscanf(file, "%d %d %lf %lf", &Data[i].ID, &Data[i].SubA, &Data[i].SubB, &Data[i].SubC);
if(scannum != 4){
fprintf(stderr,"cannot read file\n");
exit(1);
}
Data[i].sum = (double) (Data[i].SubA) + Data[i].SubB + Data[i].SubC;
}

fclose(file); /*ファイルを閉じる*/


}

void Quicksort(struct student *Data, int L, int R) {
int l; /*左端からピボット以上の数値を探す用*/
int r; /*右端からピボット以下の数値を探す用*/
double p; /*ピボット用*/

l = L;
r = R;
p = Data[(L+R) / 2].sum; /*ピボットとして真ん中の位置の値を取る*/

while(l <= r)
{
while(Data[l].sum < p) /*ピボット以上の数値のある場所を記憶*/
{
l += 1;
}
while(Data[r].sum > p) /*ピボット以下の数値のある場所を記憶*/
{
r -= 1;
}
if(l <= r)
{
if(l < r) /*l<rの時,数値を入れ替える*/
{
swap_i(&Data[l].ID,&Data[r].ID);
swap_i(&Data[l].SubA,&Data[r].SubA);
swap_d(&Data[l].SubB,&Data[r].SubB);
swap_d(&Data[l].SubC,&Data[r].SubC);
swap_d(&Data[l].sum,&Data[r].sum);
}
l += 1;
r -= 1;
}
}

/*並び替えられる配列があれば、それにクイックソートを行う*/
if(L < r)
{
Quicksort(Data, L, r);
}
if(l < R)
{
Quicksort(Data, l, R);
}
}

struct student serchsum(double key, struct student *Data){
int l; /*探索範囲の左端を示すのに使う*/
int r; /*探索範囲の右端に使う*/
int m; /*探索範囲の中央に使う*/

/*探索範囲をデータ全体に設定*/
l = 0;
r = Num-1;

while(l<r) /*探索範囲に要素が二つ以上あれば繰り返す*/
{
m = (l+r)/2; /*中央の場所*/

/*中央の値とkeyを比べる*/
/*中央の値の方が小さければ中央より右を探索範囲にする*/
/*大きければ左を探索範囲にする*/
if(Data[m].sum < key)
{
l = m+1;
}
else
{
r = m;
}
}

if(Data[l].sum == key) /*一致するものがあればその番号を返す*/
{
return Data[l];
}

/*一致するものが無ければ強制終了*/
printf("No data.\n");
exit(1);
}

struct student serchNo(int key, struct student *Data){
int l; /*探索範囲の左端を示すのに使う*/
int r; /*探索範囲の右端に使う*/
int m; /*探索範囲の中央に使う*/

/*探索範囲をデータ全体に設定*/
l = 0;
r = Num-1;

while(l<r) /*探索範囲に要素が二つ以上あれば繰り返す*/
{
m = (l+r)/2; /*中央の場所*/

/*中央の値とkeyを比べる*/
/*中央の値の方が小さければ中央より右を探索範囲にする*/
/*大きければ左を探索範囲にする*/
if(Data[m].ID < key)
{
l = m+1;
}
else
{
r = m;
}
}

if(Data[l].ID == key) /*一致するものがあればその番号を返す*/
{
return Data[l];
}

/*一致するものが無ければ強制終了*/
printf("No data.\n");
exit(1);
}

void writerank(struct student *Data){
int i; /*繰り返し用*/

for(i=0;i<Num;i++){
Data[i].rank = Num - i;
}
}

int main(void){
struct student Data[Num],Result;
int No;

printf("Input A Student Number:");
scanf("%d",&No);

/*Dataを読みとる*/
readDataFile(Data);

/*入力されたNoを二分探索により探し,結果をResultに入れる*/
Result = serchNo(No,Data); /*ここではまだ順位は付いていない*/

/*順位を付けるために,合計点でソートする*/
Quicksort(Data,0,Num-1);
/*合計点が高い方から順位を付ける*/
writerank(Data);

/*Result.sumに入っている合計点を二分探索により探す*/
Result = serchsum(Result.sum,Data);/*ここで順位が含まれた結果が得られる*/

printf("Ranking : #%d\n",Result.rank);
printf("Subject A : %d\n",Result.SubA);
printf("Subject B : %.1f\n",Result.SubB);
printf("Subject C : %.2f\n",Result.SubC);
printf("Total : %.2f\n",Result.sum);

return 0;
}


rep_data.txt  です。

1 35 8.3 219.38
2 42 47.5 15.88
3 8 33.8 76.56
4 99 191.5 276.22
5 28 21.2 278.83
6 73 122.2 147.16
7 8 6.4 294.54
8 15 113.0 295.23
9 97 137.2 120.03
10 37 173.9 111.98
11 13 70.8 173.69
12 54 176.3 66.78
13 57 7.2 151.79
14 86 59.1 220.42
15 54 40.5 259.03
16 87 195.1 23.98
17 57 79.2 65.58
18 69 176.5 23.16
19 76 115.2 118.63
20 39 195.9 169.46
21 66 5.8 118.13
22 95 82.5 262.01
23 70 11.9 125.54
24 10 193.8 250.09
25 59 79.8 61.26
26 51 35.5 254.28
27 25 15.4 271.05
28 3 54.8 154.39
29 47 49.6 7.81
30 9 132.4 70.20
31 71 139.3 203.87
32 93 21.6 84.55
33 31 127.0 286.99
34 71 89.7 55.52
35 93 131.4 116.48
36 77 161.9 255.74
37 3 48.9 137.39
38 89 33.2 132.86
39 57 117.8 182.82
40 15 102.2 260.78
41 62 182.1 59.84
42 31 98.8 204.14
43 5 121.5 48.70
44 1 96.1 284.32
45 19 65.8 139.77
46 94 12.5 56.09
47 66 90.5 72.92
48 82 187.4 17.14
49 58 97.9 120.58
50 48 27.0 237.20
51 25 113.2 265.58
52 85 88.0 9.99
53 53 174.6 64.64
54 9 31.9 69.86
55 83 155.8 218.11
56 97 66.7 209.28
57 34 48.2 42.43
58 63 37.1 221.20
59 38 195.1 171.36
60 34 113.7 239.26
61 27 163.1 108.12
62 53 31.5 235.57
63 92 140.7 146.91
64 30 165.7 108.26
65 56 162.3 20.43
66 38 27.3 269.08
67 93 44.2 153.50
68 17 153.7 109.25
69 84 113.5 87.51
70 65 156.0 271.74
71 78 70.8 279.83
72 44 95.2 152.44
73 10 85.5 226.02
74 34 111.4 231.47
75 46 54.1 24.25
76 39 33.7 282.88
77 93 108.3 46.24
78 75 94.0 57.48
79 72 108.2 107.54
80 7 116.0 26.15
81 3 45.7 127.79
82 47 23.3 230.32
83 68 78.3 32.01
84 30 116.5 259.41
85 98 182.6 253.41
86 91 147.0 166.98
87 97 129.5 96.86
88 93 33.9 122.16
89 95 39.6 134.37
90 60 173.7 42.45
91 91 41.8 153.77
92 83 132.4 149.05
93 64 111.1 140.38
94 20 104.4 252.43
95 69 150.1 244.52
96 89 197.8 27.42
97 89 168.8 238.43
98 39 166.4 80.91
99 39 175.5 110.06
101 31 55.7 75.39
102 23 160.4 110.87
103 89 77.6 265.03
104 90 115.5 76.24
105 51 114.5 191.62
106 83 45.6 187.74
107 36 116.0 241.13
108 34 136.6 9.18
109 18 49.4 93.62
110 7 50.2 130.33
111 81 145.4 191.93
112 43 186.0 128.62
113 23 177.7 165.33
114 82 108.0 78.04
115 90 183.0 280.10
116 25 44.2 56.36
117 52 35.6 252.24
118 68 81.9 42.25
119 21 13.8 277.54
120 91 183.1 277.48
121 56 167.7 34.82
122 14 113.5 299.13
123 44 28.6 254.85
124 72 140.7 206.78
125 75 57.1 246.28
126 17 92.9 228.21
127 6 32.2 77.70
128 13 41.8 84.94
129 24 138.1 41.54
130 19 92.2 220.97
131 15 145.4 91.49
132 23 171.4 146.73
133 61 156.7 287.82
134 17 77.6 180.32
135 43 45.6 7.26
136 34 26.9 278.87
137 27 46.5 58.92
138 86 175.1 267.86
139 78 26.3 145.77
140 54 163.2 27.57
141 18 121.6 11.45
142 11 79.0 203.76
143 2 36.2 103.40
144 28 167.6 118.78
145 87 163.4 230.22
146 16 190.1 223.75
147 98 73.2 226.43
148 81 79.7 297.31
149 75 184.5 28.06
150 87 51.2 192.57
151 18 41.2 68.75
152 52 42.6 273.03
153 51 127.8 231.37
154 18 99.9 247.17
155 54 2.1 145.47
156 91 189.4 293.95
157 7 50.3 128.78
158 61 83.7 66.69
159 14 121.0 22.60
160 54 188.5 105.06
161 10 79.8 209.67
162 27 101.0 222.69
163 46 26.8 243.02
164 42 67.1 75.29
165 21 180.4 178.84
166 75 68.0 279.53
167 99 179.1 239.19
168 14 61.2 140.23
169 56 87.0 92.12
170 60 196.1 107.84
171 97 7.6 32.71
172 7 139.9 98.32
173 18 116.9 297.05
174 18 108.5 270.50
175 34 177.6 131.95
176 30 184.1 162.54
177 62 56.6 283.75
178 67 132.0 196.25
179 89 74.6 256.17
180 75 193.8 57.65
181 56 14.6 175.73
182 32 129.1 291.92
183 70 128.9 177.59
184 29 1.2 217.30
185 22 185.8 191.86
186 74 182.2 25.91
187 91 182.1 271.95
188 59 188.7 88.09
189 46 135.1 268.38
190 57 38.4 243.86
191 1 37.3 108.72
192 78 57.0 237.43
193 32 76.9 135.23
194 22 104.9 250.10
195 39 158.1 56.28
196 50 154.9 15.86
197 5 72.2 201.50
198 80 117.1 111.11
199 41 150.9 30.35
201 53 93.1 119.87
202 70 3.5 99.59
203 70 179.9 30.59
204 31 47.4 49.99
205 20 62.1 127.60
206 93 196.9 12.39
207 5 138.1 99.99
208 84 88.1 12.87
209 88 52.8 194.96
210 27 107.0 240.21
211 82 31.9 148.51
212 21 6.6 258.24
213 50 64.4 42.57
214 60 51.5 274.95
215 43 184.5 124.54
216 30 145.6 47.02
217 20 165.6 135.42
218 55 88.2 99.48
219 21 145.8 75.23
220 93 53.4 179.97
221 33 163.9 92.67
222 66 79.2 40.79
223 68 191.5 69.36
224 95 12.0 50.03
225 12 27.4 46.00
226 89 60.0 211.80
227 19 138.0 57.85
228 43 11.1 205.06
229 56 154.1 293.01
230 53 156.6 9.76
231 93 96.2 8.36
232 66 125.8 178.29
233 54 169.5 47.48
234 73 71.2 294.81
235 40 126.8 261.46
236 54 164.6 31.35
237 76 112.1 109.00
238 76 76.0 0.31
239 4 76.1 216.10
240 41 67.7 80.90
241 69 10.1 122.38
242 84 105.0 63.42
243 47 19.3 216.85
244 34 92.2 174.92
245 61 198.0 109.43
246 21 29.3 24.69
247 9 67.9 177.33
248 66 77.8 34.19
249 66 162.0 288.51
250 89 191.9 7.54
251 20 183.7 192.24
252 73 98.2 75.31
253 37 179.1 125.29
254 34 177.9 130.33
255 68 26.6 176.35
256 78 159.1 243.48
257 99 98.6 299.91
258 7 55.0 143.53
259 9 162.4 160.80
260 32 133.6 6.11
261 2 16.2 43.27
262 53 163.0 28.46
263 88 22.9 104.78
264 37 174.5 113.02
265 12 13.2 3.43
266 78 167.8 268.05
267 33 85.3 157.86
268 16 65.2 148.36
269 31 192.4 184.11
270 83 151.1 204.61
271 52 177.1 74.89
272 19 16.3 293.28
273 92 197.1 14.81
274 56 120.3 191.78
275 45 87.5 128.69
276 85 47.8 189.57
277 33 93.7 183.32
278 63 6.8 131.05
279 53 4.2 152.78
280 13 103.7 272.90
281 9 185.1 226.89
282 20 26.4 20.04
283 24 27.2 10.75
284 47 70.1 68.15
285 20 149.6 90.18
286 93 67.0 223.35
287 56 55.1 297.17
288 12 197.2 256.71
289 56 184.7 87.50
290 37 34.2 290.70
291 49 160.2 33.83
292 86 191.6 16.28
293 86 13.9 82.76
294 95 190.3 284.61
295 41 125.9 253.55
296 93 93.0 299.07
297 44 28.5 254.23
298 16 12.0 289.49
299 28 195.8 202.27
301 58 20.3 186.08
302 41 115.0 222.74
303 11 101.9 272.92
304 59 34.4 226.92
305 50 176.2 77.85
306 26 71.0 134.97
307 32 83.9 155.78
308 35 137.9 7.28
309 67 92.2 75.33
310 85 81.2 289.48
311 15 115.1 0.26
312 66 158.9 277.82
313 92 167.3 227.09
314 59 137.2 233.96
315 29 109.1 241.51
316 9 2.8 280.08
317 80 120.6 122.42
318 65 103.0 114.27
319 44 104.9 182.46
320 8 126.7 57.28
321 91 76.0 255.84
322 12 111.2 296.31
323 87 33.9 141.36
324 92 46.6 163.79
325 52 137.4 257.68
326 3 47.5 133.58
327 56 138.1 246.98
328 71 67.6 289.18
329 91 42.7 156.47
330 43 97.8 163.80
331 33 186.0 158.08
332 61 156.6 285.78
333 75 178.1 9.77
334 80 122.2 127.63
335 68 166.1 293.55
336 92 24.5 97.46
337 33 114.5 243.61
338 87 154.6 202.42
339 5 10.4 16.68
340 55 126.6 215.09
341 22 83.0 181.71
342 15 27.1 36.78
343 29 151.9 69.02
344 32 162.8 92.87
345 13 145.4 97.48
346 3 175.7 217.81
347 34 30.4 288.86
348 90 20.3 91.99
349 42 54.4 37.05
350 77 84.6 23.91
351 28 91.2 188.04
352 86 71.9 257.01
353 53 10.0 171.38
354 2 169.0 199.73
355 68 112.3 131.41
356 63 168.8 17.39
357 59 31.5 216.41
358 27 36.0 27.12
359 23 42.1 55.96
360 53 162.5 29.00
361 43 1.5 174.07
362 81 88.0 22.02
363 87 150.4 191.57
364 1 81.2 240.64
365 48 110.5 187.39
366 94 14.6 61.18
367 48 55.7 21.69
368 81 76.8 288.07
369 62 160.8 296.99
370 69 159.0 271.33
371 51 154.5 9.69
372 62 72.8 33.76
373 7 91.5 254.83
374 91 49.2 173.41
375 93 85.2 276.55
376 72 172.1 0.06
377 43 153.7 31.55
378 72 173.0 3.32
379 24 171.3 143.30
380 28 112.0 251.97
381 3 14.0 32.54
382 0 40.8 122.00
383 39 90.7 155.64
384 3 92.4 266.98
385 5 194.1 267.12
386 66 124.6 175.42
387 73 71.9 296.81
388 19 108.9 269.68
389 96 100.3 12.86
390 39 15.7 229.42
391 95 10.9 47.56
392 34 20.8 261.06
393 3 127.8 73.88
394 33 102.5 209.10
395 76 122.6 138.64
396 13 178.7 196.06
397 99 63.2 191.71
398 64 178.6 44.05
399 84 111.3 82.61
401 63 14.0 152.58
402 76 7.3 95.29
403 60 158.8 295.57
404 95 166.5 215.11
405 82 163.5 244.67
406 83 15.8 99.39
407 75 119.3 133.98
408 47 125.6 235.31
409 72 45.9 222.75
410 58 138.9 241.51
411 63 191.7 86.92
412 73 148.5 225.44
413 9 61.1 155.68
414 66 172.8 20.14
415 56 96.5 122.16
416 18 18.7 3.24
417 25 149.3 73.25
418 77 73.7 290.86
419 45 81.3 109.02
420 57 63.4 19.27
421 96 141.8 138.70
422 73 74.5 3.20
423 11 139.2 85.35
424 68 138.1 209.39
425 74 80.8 21.74
426 67 97.3 90.45
427 77 127.0 150.71
428 21 48.2 81.80
429 92 76.8 253.38
430 76 56.8 243.53
431 43 195.4 156.42
432 43 41.0 292.82
433 68 49.1 242.18
434 74 125.1 154.04
435 71 62.5 275.15
436 24 145.3 63.36
437 24 27.3 10.44
438 42 106.1 193.17
439 57 173.2 48.87
440 33 153.0 59.45
441 55 89.0 102.57
442 12 73.6 183.69
443 68 133.2 195.11
444 13 0.1 260.68
445 35 111.9 229.98
446 97 50.6 159.94
447 59 191.8 97.97
448 6 65.7 177.88
449 10 146.0 108.26
450 70 115.3 136.76
451 68 175.9 22.16
452 51 106.4 164.73
453 7 16.8 28.06
454 14 28.2 43.75
455 12 170.4 174.30
456 27 172.2 135.56
457 74 52.6 236.11
458 53 155.0 6.38
459 12 131.4 58.19
460 18 143.0 75.75
461 41 196.7 166.16
462 18 131.1 38.30
463 55 89.5 103.66
464 14 155.4 125.29
465 70 158.0 263.71
466 86 79.7 281.70
467 72 178.2 18.61
468 98 34.5 109.79
469 99 47.3 146.01
470 1 31.1 90.69
471 80 85.4 15.13
472 45 144.4 299.32
473 46 149.0 10.41
474 44 183.0 116.07
475 33 144.4 35.10
476 74 166.2 275.23
477 33 16.7 249.64
478 37 30.5 279.81
479 33 183.1 149.93
480 16 35.0 57.72
481 58 161.9 11.24
482 99 193.3 282.47
483 76 65.2 268.87
484 97 143.2 137.52
485 85 63.4 234.52
486 41 83.6 128.44
487 46 17.1 213.76
488 28 156.4 86.34
489 23 94.8 215.89
490 2 79.7 234.09
491 36 9.9 220.70
492 38 35.1 292.35
493 1 57.1 166.84
494 18 131.0 39.65
495 64 45.5 244.55
496 66 67.3 3.04
497 15 0.7 258.09
498 94 151.1 172.84
499 60 40.0 238.78
501 25 168.8 131.52
502 12 170.0 174.17
503 63 167.9 13.96
504 98 152.8 165.43
505 95 20.6 75.93
506 40 130.2 269.78
507 12 113.3 4.44
508 43 17.8 225.76
509 76 98.7 66.74
510 35 77.7 127.65
511 10 191.5 245.65
512 90 138.4 145.77
513 71 112.8 124.17
514 97 174.8 233.60
515 25 130.8 18.05
516 60 73.2 38.81
517 9 130.0 61.68
518 29 50.5 64.56
519 34 17.4 249.17
520 98 33.6 107.13
521 89 70.0 243.28
522 56 13.2 172.53
523 68 64.2 287.38
524 24 26.8 8.84
525 2 140.0 114.16
526 60 118.7 175.24
527 60 149.9 268.26
528 68 74.3 18.53
529 16 56.5 121.49
530 38 55.8 52.70
531 28 182.6 162.49
532 19 127.0 23.52
533 45 84.6 117.72
534 6 92.1 257.68
535 92 54.8 188.80
536 41 31.1 269.30
537 94 124.3 91.80
538 79 160.9 246.33
539 65 104.5 119.95
540 32 0.9 206.43
541 61 110.5 148.97
542 14 145.4 95.53
543 53 106.4 160.79
544 51 30.9 238.51
545 72 167.7 286.40
546 19 24.8 18.55
547 86 65.5 238.02
548 28 31.2 9.06
549 61 6.4 135.38
550 43 95.2 158.17
551 39 160.8 64.40
552 5 30.1 74.31
553 15 72.6 172.70
554 46 61.5 46.07
555 45 34.9 270.97
556 40 185.9 137.32
557 61 112.6 153.94
558 1 138.5 112.66
559 70 138.2 205.99
560 90 127.6 113.83
561 58 99.6 126.15
562 84 154.0 209.53
563 7 187.0 239.64
564 62 178.1 47.94
565 86 141.7 168.43
566 92 11.7 59.31
567 51 58.2 22.03
568 41 75.9 105.24
569 70 28.5 176.43
570 2 82.6 241.67
571 5 57.9 159.85
572 1 143.6 127.70
573 52 38.6 260.97
574 81 176.5 286.18
575 86 160.2 221.81
576 15 160.2 134.87
577 51 178.4 81.93
578 15 116.8 4.88
579 57 59.9 7.65
580 60 108.9 147.67
581 48 93.2 136.49
582 14 178.3 191.92
583 53 164.2 33.90
584 37 38.1 4.07
585 22 172.6 150.77
586 1 144.1 128.56
587 61 75.8 43.91
588 10 150.2 120.17
589 72 87.1 45.00
590 83 115.3 96.57
591 34 28.8 284.97
592 28 41.2 39.96
593 14 118.4 13.97
594 58 132.6 224.33
595 6 53.2 141.17
596 10 29.7 57.72
597 93 136.6 130.48
598 31 157.1 77.14
599 19 62.8 129.78
601 2 26.8 73.90
602 38 177.6 120.12
603 62 121.3 179.33
604 34 154.0 60.03
605 32 5.7 222.02
606 70 63.8 279.95
607 39 190.2 152.09
608 96 2.8 20.62
609 56 16.7 183.12
610 12 60.5 145.86
611 92 39.3 141.30
612 5 43.0 113.11
613 35 158.4 70.19
614 98 27.8 89.60
615 48 66.8 55.13
616 38 179.6 124.00
617 56 80.1 72.24
618 12 52.1 120.10
619 49 47.3 294.95
620 94 68.0 221.12
621 69 46.8 233.45
622 92 23.8 94.12
623 29 25.5 288.40
624 25 66.4 122.88
625 56 36.5 242.53
626 0 165.1 194.79
627 89 133.6 132.96
628 14 193.7 240.31
629 45 134.9 269.31
630 30 9.5 238.64
631 90 158.3 205.96
632 46 95.0 147.02
633 95 131.4 109.82
634 86 180.5 282.82
635 62 49.2 262.27
636 30 91.2 184.09
637 87 93.6 18.46
638 67 118.2 154.64
639 39 9.2 209.81
640 26 167.9 124.75
641 8 128.7 63.24
642 81 108.3 82.10
643 56 3.0 142.19
644 28 185.3 173.03
645 78 187.5 28.87
646 64 151.3 260.34
647 92 161.7 208.82
648 23 72.7 148.13
649 87 40.5 161.35
650 68 23.1 164.49
651 79 125.8 139.22
652 9 10.4 4.12
653 95 28.5 100.58
654 49 45.6 290.06
655 44 170.0 79.35
656 48 128.4 241.26
657 14 82.5 204.39
658 67 112.4 137.45
659 95 186.5 274.12
660 30 179.8 149.61
661 82 182.6 2.72
662 42 99.4 170.96
663 66 128.3 185.67
664 34 128.5 283.86
665 48 120.7 219.28
666 80 43.9 193.09
667 32 111.8 238.88
668 13 36.8 71.16
669 99 32.1 99.14
670 58 164.2 19.41
671 95 111.8 51.43
672 36 116.6 242.23
673 79 80.2 3.12
674 83 40.5 172.47
675 29 19.9 272.48
676 75 54.3 236.67
677 41 44.9 12.11
678 75 193.8 55.44
679 55 170.3 46.22
680 33 24.2 275.10
681 88 114.0 77.42
682 55 13.9 175.90
683 24 109.3 254.99
684 67 112.2 136.74
685 55 146.1 271.98
686 91 71.8 243.77
687 3 4.6 4.62
688 99 59.4 181.10
689 61 96.7 106.12
690 82 36.5 163.79
691 59 183.3 73.93
692 52 89.1 110.09
693 68 62.1 283.67
694 47 127.8 241.82
695 94 181.5 262.40
696 5 192.2 261.92
697 11 106.0 285.11
698 80 168.0 264.76
699 92 122.8 91.80
701 14 166.7 157.47
702 77 96.2 57.85
703 25 99.8 225.39
704 43 156.5 40.57
705 86 84.2 295.91
706 13 14.4 2.91
707 72 81.4 26.84
708 71 101.5 90.91
709 89 121.6 98.89
710 94 105.8 35.77
711 87 13.8 79.36
712 78 22.6 133.13
713 11 3.5 278.41
714 62 78.1 49.11
715 99 140.7 124.90
716 57 165.2 24.61
717 1 188.7 263.68
718 26 98.7 217.28
719 80 39.1 177.69
720 46 152.4 17.79
721 27 55.3 84.42
722 8 162.5 163.10
723 10 127.7 53.03
724 45 159.6 44.57
725 3 78.6 227.44
726 57 6.5 148.53
727 2 129.9 82.82
728 74 170.3 288.10
729 37 61.0 71.37
730 37 66.0 87.38
731 40 103.2 190.35
732 67 149.6 247.07
733 77 145.0 203.86
734 20 197.8 233.83
735 50 115.0 195.68
736 98 36.0 115.13
737 44 62.9 56.77
738 23 197.1 221.21
739 8 14.6 20.13
740 47 5.0 174.46
741 80 154.1 223.44
742 6 85.5 237.83
743 7 124.2 51.84
744 33 8.0 224.75
745 30 141.6 35.36
746 70 22.6 158.21
747 90 53.4 189.55
748 20 12.4 278.22
749 4 122.3 53.43
750 42 10.2 204.01
751 11 93.9 247.79
752 1 96.5 286.61
753 10 27.8 52.43
754 2 31.4 86.61
755 23 119.8 290.68
756 78 24.4 139.18
757 98 47.5 147.22
758 32 193.9 184.80
759 3 188.2 256.94
760 54 73.5 58.65
761 48 84.3 109.66
762 35 86.9 155.36
763 53 164.5 35.03
764 38 54.1 49.76
765 42 127.6 257.56
766 10 142.3 97.95
767 20 25.3 15.97
768 64 74.9 31.24
769 26 117.0 273.32
770 98 88.2 270.23
771 23 6.2 248.19
772 17 38.4 63.22
773 28 157.0 87.77
774 4 118.3 41.36
775 20 185.0 194.95
776 20 46.0 78.29
777 96 54.8 175.50
778 13 47.5 104.40
779 25 183.6 176.22
780 46 57.1 32.89
781 1 169.2 203.05
782 16 128.1 34.94
783 58 22.9 195.14
784 32 44.5 37.96
785 42 78.9 110.25
786 46 150.5 14.53
787 55 22.3 200.72
788 99 151.8 159.53
789 2 187.2 256.03
790 32 29.5 293.10
791 63 83.4 61.15
792 43 158.8 47.40
793 14 45.2 92.36
794 50 12.1 186.49
795 15 2.5 261.83
796 68 72.8 13.28
797 43 55.8 36.97
798 45 159.0 40.70
799 74 114.0 120.09
801 74 135.6 185.21
802 60 73.7 41.44
803 4 188.7 254.61
804 9 43.5 103.44
805 6 123.1 50.02
806 44 138.1 281.88
807 42 83.9 124.94
808 34 131.7 292.11
809 25 72.5 141.22
810 56 140.3 254.10
811 65 79.8 45.10
812 27 123.1 287.80
813 32 38.7 20.57
814 52 155.2 9.47
815 86 103.1 50.38
816 26 3.7 233.82
817 57 63.2 19.52
818 89 155.9 199.48
819 73 161.6 265.31
820 76 194.9 58.25
821 1 104.6 12.06
822 81 51.4 212.34
823 79 37.4 175.29
824 15 5.8 273.48
825 5 87.6 249.31
826 8 94.4 258.22
827 43 158.7 48.25
828 29 163.2 103.29
829 8 175.4 202.87
830 10 168.0 172.72
831 24 179.0 165.35
832 44 33.8 269.68
833 79 99.1 60.23
834 24 138.7 45.11
835 78 189.9 34.85
836 62 68.4 17.64
837 49 1.8 159.73
838 17 189.4 215.99
839 96 100.7 14.81
840 86 6.4 61.89
841 57 52.7 286.81
842 18 22.9 14.34
843 10 77.3 200.69
844 5 171.2 199.32
845 81 126.7 138.39
846 63 128.1 195.30
847 97 103.8 19.40
848 83 125.2 127.60
849 75 52.5 232.51
850 24 162.7 116.62
851 64 119.7 166.50
852 62 183.9 65.08
853 54 96.6 128.34
854 56 109.1 158.46
855 4 198.6 284.77
856 21 58.8 112.80
857 70 47.2 231.33
858 84 3.4 58.42
859 23 116.2 280.21
860 72 134.5 186.98
861 72 41.2 209.07
862 27 151.0 70.98
863 34 54.7 60.73
864 59 115.2 169.17
865 10 188.7 237.07
866 69 0.0 92.72
867 34 144.8 32.66
868 8 15.3 21.79
869 53 75.7 67.07
870 95 73.9 237.83
871 59 150.7 275.06
872 61 164.4 10.05
873 85 149.6 194.17
874 79 20.5 123.12
875 77 192.2 45.63
876 13 198.9 258.90
877 33 98.9 196.65
878 51 138.6 262.10
879 34 134.8 2.55
880 18 11.2 279.63
881 47 74.8 82.31
882 87 191.0 12.78
883 51 48.6 291.90
884 76 51.7 226.57
885 95 173.9 236.47
886 89 64.7 228.09
887 38 69.2 92.58
888 53 23.1 208.87
889 64 163.2 296.18
890 75 188.8 40.26
891 99 159.4 181.68
892 76 159.4 248.71
893 49 195.3 140.27
894 40 44.7 13.59
895 14 24.4 32.26
896 44 10.2 199.83
897 58 135.6 233.71
898 5 9.1 11.99
899 77 20.9 132.62
901 45 16.7 214.82
902 68 21.6 159.81
903 10 45.5 105.13
904 19 182.9 190.99
905 90 148.3 173.67
906 17 145.8 87.72
907 58 27.6 209.16
908 81 16.4 105.39
909 67 19.3 158.27
910 85 72.2 260.99
911 89 199.3 30.38
912 78 43.8 195.99
913 8 135.3 81.33
914 35 112.7 233.89
915 80 63.5 251.67
916 39 94.0 163.58
917 16 145.8 88.37
918 39 3.2 192.70
919 86 194.3 25.49
920 77 128.8 155.33
921 49 145.3 289.65
922 11 174.2 189.45
923 15 140.8 75.92
924 94 123.1 86.29
925 13 35.8 67.05
926 64 8.7 134.90
927 57 198.0 123.70
928 57 102.6 136.04
929 14 105.1 273.26
930 85 6.3 63.72
931 31 6.3 225.97
932 37 101.1 192.61
933 31 7.2 228.26
934 89 125.5 110.90
935 49 25.1 228.61
936 0 8.5 24.29
937 40 148.1 25.51
938 2 164.2 185.29
939 16 169.9 162.38
940 61 116.8 166.30
941 67 81.7 45.34
942 46 56.9 32.06
943 95 159.9 195.97
944 0 179.8 238.70
945 83 130.0 141.14
946 72 79.6 21.73
947 1 144.5 130.52
948 38 17.8 240.46
949 92 191.7 298.71
950 68 152.3 253.66
951 50 44.8 282.94
952 30 51.1 64.02
953 3 82.0 236.22
954 87 38.9 154.68
955 9 56.0 139.88
956 64 189.6 77.02
957 89 63.6 223.10
958 81 36.0 166.06
959 83 83.7 0.98
960 33 34.8 4.61
961 9 27.8 57.77
962 97 98.1 4.72
963 50 158.7 25.68
964 5 31.8 79.95
965 94 176.7 249.55
966 17 40.2 70.77
967 94 61.3 202.37
968 78 82.3 12.76
969 85 175.9 271.77
970 47 28.8 244.85
971 47 93.0 137.30
972 60 123.7 192.43
973 24 49.0 73.87
974 33 105.8 219.58
975 9 158.0 147.02
976 31 44.8 40.73
977 46 51.4 17.59
978 78 47.7 208.02
979 100 2.6 9.17
980 47 43.8 291.13
981 19 176.9 174.69
982 25 143.7 55.57
983 24 46.3 66.41
984 4 3.9 299.27
985 89 56.5 201.39
986 91 44.6 160.73
987 70 46.5 230.38
988 66 110.9 134.32
989 11 114.5 10.10
990 82 143.8 185.28
991 83 91.3 24.29
992 74 97.0 67.77
993 45 53.2 23.61
994 80 59.8 239.95
995 71 114.9 130.36
996 46 106.8 182.18
997 2 8.4 19.62
998 26 142.2 48.06
999 61 24.4 191.27
1001 90 66.0 228.81
1002 94 48.2 161.42
1003 40 72.0 96.46
1004 8 122.9 44.86
1005 75 100.1 76.63
1006 14 178.5 194.80
1007 36 5.5 208.75
1008 7 96.5 269.52
1009 61 27.5 200.90
1010 97 29.2 95.92

初級者
記事: 200
登録日時: 9年前

Re: こんばんは。構造体の問題です。ご教授ください。

#2

投稿記事 by 初級者 » 6年前

正確な答えが返ってくるかどうかわからない
掲示板というワンクッションを入れるよりも、
そのお友達に直接確認するのがよいと思います。

誤:いただきませんか
正:いただけませんか

アバター
みけCAT
記事: 6252
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: こんばんは。構造体の問題です。ご教授ください。

#3

投稿記事 by みけCAT » 6年前

コードを提示するときはBBcodeを有効にした状態でcodeタグで囲み、
かつ適切なインデントをしていただけると、見やすくて助かります。
また、長いファイルは添付やspoilを使用し、記事が長くなりすぎないようにしていただけるとさらに良いです。
kfwjwuk さんが書きました:根本的に違うなら僕のファイルのどこが違うか指摘していただきませんか。
とりあえず、二分探索を使えと書いてあるのに、無駄に複雑な木構造を使用しているのは違いますね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

box
記事: 1746
登録日時: 9年前

Re: こんばんは。構造体の問題です。ご教授ください。

#4

投稿記事 by box » 6年前

回答が出ているとおり、
二分木というデータ構造

二分探索というアルゴリズム
とがゴッチャになっている印象を受けます。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6252
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: こんばんは。構造体の問題です。ご教授ください。

#5

投稿記事 by みけCAT » 6年前

QuickSort関数で、struct student型のデータをint型の変数に代入しようとしたり、
逆にint型のデータをstruct student型の変数に代入しようとしているのも致命的ですね。

【追記】代入だけでなく、比較もありますね。
最後に編集したユーザー みけCAT on 2014年2月06日(木) 22:59 [ 編集 1 回目 ]
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6252
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: こんばんは。構造体の問題です。ご教授ください。

#6

投稿記事 by みけCAT » 6年前

readDataFile関数で、返り値にvoid型を指定しているのに値を返している場所があります。
コンパイルエラーにはならないようですが、不自然です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6252
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: こんばんは。構造体の問題です。ご教授ください。

#7

投稿記事 by みけCAT » 6年前

入力データに対してreadDataFile関数で使用しているfscanfに指定している書式がおかしいです。
これではデータは最初の学籍番号しか読み込めないでしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る