質問編集履歴
3
コード修正と実行結果
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,205 +2,187 @@
|
|
2
2
|
|
3
3
|
コンパイルはできる状態です。コードの下に実行結果を張り付けています。
|
4
4
|
|
5
|
-
|
5
|
+
実行時間時間の短い順に表示されない。
|
6
6
|
|
7
7
|
```
|
8
8
|
|
9
9
|
コード
|
10
10
|
|
11
|
-
/* qsort を使って構造体の配列をソートするプログラム例です。
|
12
|
-
|
13
|
-
構造体配列time_t を実行時間の短い順にソートします。
|
14
|
-
|
15
|
-
*/
|
16
|
-
|
17
|
-
|
18
|
-
|
19
11
|
#include <stdio.h>
|
20
12
|
|
21
13
|
#include <stdlib.h>
|
22
14
|
|
15
|
+
|
16
|
+
|
23
|
-
#define
|
17
|
+
#define NDATA ((sizeof lst)/(sizeof(DATA_TIME)))
|
24
18
|
|
25
19
|
|
26
20
|
|
27
|
-
typedef struct
|
21
|
+
typedef struct //
|
28
22
|
|
29
|
-
|
23
|
+
{
|
30
24
|
|
31
|
-
|
25
|
+
int year; //
|
32
26
|
|
33
|
-
|
27
|
+
int mon; //
|
34
28
|
|
35
|
-
|
29
|
+
int mday; //
|
36
30
|
|
37
|
-
|
31
|
+
int hour; //
|
38
32
|
|
39
|
-
|
33
|
+
int min; //
|
40
34
|
|
41
|
-
|
35
|
+
int sec;
|
42
36
|
|
37
|
+
double score;
|
38
|
+
|
43
|
-
}
|
39
|
+
}DATA_TIME;
|
44
40
|
|
45
41
|
|
46
42
|
|
47
|
-
|
43
|
+
// --------------- 比較用の関数 cmp cmp -------------------
|
48
44
|
|
49
|
-
int cmp( const void *p, const void *q ) {
|
45
|
+
int cmpptr( const void *p, const void *q ) {
|
50
46
|
|
51
|
-
return ((
|
47
|
+
return (*(DATA_TIME**)p)->score - (*(DATA_TIME**)q)->score;
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
// ----------------------------------------------------
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
int main()
|
56
|
+
|
57
|
+
{
|
58
|
+
|
59
|
+
DATA_TIME lst[]={{2017, 9,16, 8,18,10,10.6},
|
60
|
+
|
61
|
+
{2015,12, 7,19,59, 8, 8.0},
|
62
|
+
|
63
|
+
{2016, 1, 3, 1, 9,11, 7.5},
|
64
|
+
|
65
|
+
{2016, 4, 5,19,16, 8, 9.0},
|
66
|
+
|
67
|
+
{2015, 6, 4,19, 2,44, 7.5},
|
68
|
+
|
69
|
+
{2016, 8, 7,22,31,52, 9.3},
|
70
|
+
|
71
|
+
{2014, 1, 4,23,43,50,10.2},
|
72
|
+
|
73
|
+
{2016, 5,31,21, 9,53, 7.0},
|
74
|
+
|
75
|
+
{2014, 2,12,28,31,49,13.0},
|
76
|
+
|
77
|
+
{2016, 2,28, 2,27,20, 7.8},
|
78
|
+
|
79
|
+
{2015, 5, 2,16,43,32, 6.3},
|
80
|
+
|
81
|
+
{2017, 9,14,10,21,18, 6.0},
|
82
|
+
|
83
|
+
{2017, 9,16, 8,18,10, 8.6}};
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
int i;
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
DATA_TIME *plst[NDATA];
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
// ポインタの配列 plst に構造体配列のアドレスを代入
|
96
|
+
|
97
|
+
for(i=0; i<NDATA; i++) plst[i]=&lst[i];
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
// 実行時間の短い順にソート
|
102
|
+
|
103
|
+
qsort(plst, NDATA, sizeof(DATA_TIME*), cmpptr );
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
//並べ替え後の内容を表示
|
108
|
+
|
109
|
+
for( i=0; i<NDATA; i++ )
|
110
|
+
|
111
|
+
printf(" %d年 %d月 %d日 %d時 %d分 %d秒 実行時間:%.1f秒\n\n"
|
112
|
+
|
113
|
+
,plst[i]->year, plst[i]->mon, plst[i]->mday,
|
114
|
+
|
115
|
+
plst[i]->hour, plst[i]->min, plst[i]->sec, plst[i]->score);
|
52
116
|
|
53
117
|
}
|
54
118
|
|
55
119
|
|
56
120
|
|
57
|
-
|
121
|
+
/*実行結果
|
58
122
|
|
59
|
-
{
|
60
|
-
|
61
|
-
|
123
|
+
C:\MinGW\users\chap09\kadai>gcc -I. -o narabekae2 narabekae2.c -Wall
|
62
|
-
|
63
|
-
{2015,12,7,19,59,8,8.0},
|
64
|
-
|
65
|
-
{2016,1,3,1,9,11,7.5},
|
66
|
-
|
67
|
-
{2016,4,5,19,16,8,9.0},
|
68
|
-
|
69
|
-
{2015,6,4,19,2,44,7.5},
|
70
|
-
|
71
|
-
{2016,8,7,22,31,52,9.3},
|
72
|
-
|
73
|
-
{2014,1,4,23,43,50,10.2},
|
74
|
-
|
75
|
-
{2016,5,31,21,9,53,7.0},
|
76
|
-
|
77
|
-
{2014,2,12,28,31,49,13.0},
|
78
|
-
|
79
|
-
{2016,2,28,2,27,20,7.8},
|
80
|
-
|
81
|
-
{2015,5,2,16,43,32,6.3},
|
82
|
-
|
83
|
-
{2017,9,14,10,21,18,6.0},
|
84
|
-
|
85
|
-
{2017,9,16,8,18,10,8.6}};
|
86
|
-
|
87
|
-
int i;
|
88
124
|
|
89
125
|
|
90
126
|
|
91
|
-
|
127
|
+
C:\MinGW\users\chap09\kadai> narabekae2
|
92
128
|
|
93
|
-
|
94
|
-
|
95
|
-
qsort( data_t, n, sizeof(tim_t), cmp );
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
printf( "実行時間の短い順にソ\ートします。\n");
|
100
|
-
|
101
|
-
for(i=0; i<n; i++){
|
102
|
-
|
103
|
-
|
129
|
+
2017年 9月 14日 10時 21分 18秒 実行時間:6.0秒
|
104
|
-
|
105
|
-
, data_t[i].tm_year,data_t[i].tm_mon,data_t[i].tm_mday,data_t[i].tm_hour,data_t[i].tm_min,data_t[i].tm_sec,data_t[i].score );
|
106
|
-
|
107
|
-
}
|
108
|
-
|
109
|
-
}
|
110
|
-
|
111
|
-
/* 実行結果
|
112
130
|
|
113
131
|
|
114
132
|
|
115
|
-
|
133
|
+
2015年 5月 2日 16時 43分 32秒 実行時間:6.3秒
|
116
134
|
|
117
135
|
|
118
136
|
|
119
|
-
C:\MinGW\users\chap09\kadai>narabekae3
|
120
|
-
|
121
|
-
実行時間の短い順にソートします。
|
122
|
-
|
123
|
-
201
|
137
|
+
2016年 1月 3日 1時 9分 11秒 実行時間:7.5秒
|
124
|
-
|
125
|
-
6.0秒
|
126
138
|
|
127
139
|
|
128
140
|
|
129
|
-
2015年
|
141
|
+
2015年 12月 7日 19時 59分 8秒 実行時間:8.0秒
|
130
|
-
|
131
|
-
6.3秒
|
132
142
|
|
133
143
|
|
134
144
|
|
135
|
-
201
|
145
|
+
2015年 6月 4日 19時 2分 44秒 実行時間:7.5秒 ・・・おかしい
|
136
|
-
|
137
|
-
7.5秒
|
138
146
|
|
139
147
|
|
140
148
|
|
141
|
-
201
|
149
|
+
2016年 2月 28日 2時 27分 20秒 実行時間:7.8秒 ・・・おかしい
|
142
|
-
|
143
|
-
8.0秒
|
144
150
|
|
145
151
|
|
146
152
|
|
147
|
-
201
|
153
|
+
2016年 5月 31日 21時 9分 53秒 実行時間:7.0秒 ・・・おかしい
|
148
|
-
|
149
|
-
7.5秒
|
150
154
|
|
151
155
|
|
152
156
|
|
153
|
-
2016年
|
157
|
+
2016年 4月 5日 19時 16分 8秒 実行時間:9.0秒
|
154
|
-
|
155
|
-
7.8秒
|
156
158
|
|
157
159
|
|
158
160
|
|
159
|
-
2016年
|
161
|
+
2016年 8月 7日 22時 31分 52秒 実行時間:9.3秒
|
160
|
-
|
161
|
-
7.0秒
|
162
162
|
|
163
163
|
|
164
164
|
|
165
|
-
201
|
165
|
+
2014年 1月 4日 23時 43分 50秒 実行時間:10.2秒
|
166
|
-
|
167
|
-
9.0秒
|
168
166
|
|
169
167
|
|
170
168
|
|
171
|
-
201
|
169
|
+
2017年 9月 16日 8時 18分 10秒 実行時間:8.6秒 ・・・おかしい
|
172
|
-
|
173
|
-
9.3秒
|
174
170
|
|
175
171
|
|
176
172
|
|
177
|
-
201
|
173
|
+
2017年 9月 16日 8時 18分 10秒 実行時間:10.6秒
|
178
|
-
|
179
|
-
10.2秒
|
180
174
|
|
181
175
|
|
182
176
|
|
183
|
-
2017年 9月 16日 8時 18分 10秒
|
184
|
-
|
185
|
-
8.6秒
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
2017年 9月 16日 8時 18分 10秒
|
190
|
-
|
191
|
-
10.6秒
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
2014年
|
177
|
+
2014年 2月 12日 28時 31分 49秒 実行時間:13.0秒
|
196
|
-
|
197
|
-
13.0秒
|
198
178
|
|
199
179
|
|
200
180
|
|
201
181
|
|
202
182
|
|
203
183
|
C:\MinGW\users\chap09\kadai>
|
184
|
+
|
185
|
+
|
204
186
|
|
205
187
|
*/
|
206
188
|
|
2
コードの変更、結果の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,304 +1,200 @@
|
|
1
|
-
実行日時、実行時間を
|
1
|
+
実行日時、実行時間を、実行時間の短い順に表示したいのですが、
|
2
2
|
|
3
3
|
コンパイルはできる状態です。コードの下に実行結果を張り付けています。
|
4
4
|
|
5
|
-
よろしくおねがいいたします。実行時間時間の短い順
|
5
|
+
よろしくおねがいいたします。実行時間時間の短い順に表示されない。
|
6
6
|
|
7
7
|
```
|
8
8
|
|
9
9
|
コード
|
10
10
|
|
11
|
-
/*
|
11
|
+
/* qsort を使って構造体の配列をソートするプログラム例です。
|
12
|
-
|
12
|
+
|
13
|
-
|
13
|
+
構造体配列time_t を実行時間の短い順にソートします。
|
14
|
+
|
15
|
+
*/
|
16
|
+
|
17
|
+
|
14
18
|
|
15
19
|
#include <stdio.h>
|
16
20
|
|
17
21
|
#include <stdlib.h>
|
18
22
|
|
19
|
-
#include <time.h>
|
20
|
-
|
21
|
-
|
22
|
-
|
23
23
|
#define MAXCNT 100
|
24
24
|
|
25
|
-
|
25
|
+
|
26
|
-
|
27
|
-
|
26
|
+
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
typedef struct{
|
27
|
+
typedef struct{
|
32
|
-
|
28
|
+
|
33
|
-
|
29
|
+
int tm_year;
|
34
|
-
|
30
|
+
|
35
|
-
|
31
|
+
int tm_mon;
|
36
|
-
|
32
|
+
|
37
|
-
|
33
|
+
int tm_mday;
|
38
|
-
|
34
|
+
|
39
|
-
|
35
|
+
int tm_hour;
|
40
|
-
|
36
|
+
|
41
|
-
|
37
|
+
int tm_min;
|
42
|
-
|
38
|
+
|
43
|
-
|
39
|
+
int tm_sec;
|
44
|
-
|
40
|
+
|
45
|
-
|
41
|
+
double score;
|
46
|
-
|
42
|
+
|
47
|
-
}
|
43
|
+
}tim_t;
|
48
|
-
|
49
|
-
|
50
|
-
|
44
|
+
|
45
|
+
|
46
|
+
|
51
|
-
// 比較関数
|
47
|
+
// --------------- 比較用の関数 cmp -------------------
|
52
|
-
|
48
|
+
|
53
|
-
int cmp
|
49
|
+
int cmp( const void *p, const void *q ) {
|
54
|
-
|
50
|
+
|
55
|
-
return (
|
51
|
+
return ((tim_t*)p)->score - ((tim_t*)q)->score;
|
56
52
|
|
57
53
|
}
|
58
54
|
|
59
55
|
|
60
56
|
|
61
|
-
|
57
|
+
int main(void)
|
62
58
|
|
63
59
|
{
|
64
60
|
|
61
|
+
tim_t data_t[]={{2017,9,16,8,18,10,10.6},
|
62
|
+
|
63
|
+
{2015,12,7,19,59,8,8.0},
|
64
|
+
|
65
|
+
{2016,1,3,1,9,11,7.5},
|
66
|
+
|
67
|
+
{2016,4,5,19,16,8,9.0},
|
68
|
+
|
69
|
+
{2015,6,4,19,2,44,7.5},
|
70
|
+
|
71
|
+
{2016,8,7,22,31,52,9.3},
|
72
|
+
|
73
|
+
{2014,1,4,23,43,50,10.2},
|
74
|
+
|
75
|
+
{2016,5,31,21,9,53,7.0},
|
76
|
+
|
77
|
+
{2014,2,12,28,31,49,13.0},
|
78
|
+
|
79
|
+
{2016,2,28,2,27,20,7.8},
|
80
|
+
|
81
|
+
{2015,5,2,16,43,32,6.3},
|
82
|
+
|
83
|
+
{2017,9,14,10,21,18,6.0},
|
84
|
+
|
65
|
-
|
85
|
+
{2017,9,16,8,18,10,8.6}};
|
66
|
-
|
86
|
+
|
67
|
-
|
87
|
+
int i;
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
88
|
+
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
89
|
+
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
90
|
+
|
80
|
-
|
81
|
-
printf( "ファイルがオープンできません\n" );
|
82
|
-
|
83
|
-
exit( 1 );
|
84
|
-
|
85
|
-
}
|
86
|
-
|
87
|
-
for(i = 0; i<MAXCNT; i++) {
|
88
|
-
|
89
|
-
if(fscanf(fp,"%d %d %d %d %d %d %lf\n" // 構造体配列への読み込み
|
90
|
-
|
91
|
-
, &local[i].tm_year,&local[i].tm_mon, &local[i].tm_mday,
|
92
|
-
|
93
|
-
&local[i].tm_hour, &local[i].tm_min,&local[i].tm_sec,&local[i].score )!= 7) break;
|
94
|
-
|
95
|
-
(*count)++;
|
96
|
-
|
97
|
-
}
|
98
|
-
|
99
|
-
|
91
|
+
int n=sizeof(data_t)/sizeof(tim_t);
|
100
92
|
|
101
93
|
|
102
94
|
|
103
|
-
|
95
|
+
qsort( data_t, n, sizeof(tim_t), cmp );
|
104
96
|
|
105
97
|
|
106
98
|
|
107
|
-
|
99
|
+
printf( "実行時間の短い順にソ\ートします。\n");
|
108
|
-
|
109
|
-
|
110
|
-
|
100
|
+
|
111
|
-
|
101
|
+
for(i=0; i<n; i++){
|
112
|
-
|
102
|
+
|
113
|
-
|
103
|
+
printf("%4d年 %2d月 %2d日 %2d時 %2d分 %2d秒\n %2.1f秒\n\n"
|
114
|
-
|
115
|
-
|
104
|
+
|
116
|
-
|
117
|
-
|
105
|
+
, data_t[i].tm_year,data_t[i].tm_mon,data_t[i].tm_mday,data_t[i].tm_hour,data_t[i].tm_min,data_t[i].tm_sec,data_t[i].score );
|
118
|
-
|
106
|
+
|
119
|
-
|
107
|
+
}
|
120
|
-
|
121
|
-
fflush(stdout);
|
122
|
-
|
123
|
-
fclose(fp);
|
124
|
-
|
125
|
-
printf("count1は%d\n\n", *count);
|
126
|
-
|
127
|
-
return *count;
|
128
108
|
|
129
109
|
}
|
130
110
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
過去の履歴データ
|
220
|
-
|
221
|
-
--------------------------
|
222
|
-
|
223
|
-
2017年 9月 16日 8時 52分 18秒
|
224
|
-
|
225
|
-
所要時間(score)は10.6
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
2015年 12月 7日 19時 59分 8秒
|
230
|
-
|
231
|
-
所要時間(score)は8.0
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
2016年 1月 4日 1時 9分 11秒
|
236
|
-
|
237
|
-
所要時間(score)は7.5
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
2016年 1月 4日 19時 16分 8秒
|
242
|
-
|
243
|
-
所要時間(score)は9.0
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
2016年 1月 4日 19時 2分 44秒
|
248
|
-
|
249
|
-
所要時間(score)は7.5
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
2016年 1月 4日 22時 31分 52秒
|
254
|
-
|
255
|
-
所要時間(score)は9.3
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
2016年 1月 4日 23時 33分 50秒
|
260
|
-
|
261
|
-
所要時間(score)は10.2
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
2016年 1月 31日 21時 9分 53秒
|
266
|
-
|
267
|
-
所要時間(score)は7.0
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
2016年 2月 2日 8時 49分 9秒
|
272
|
-
|
273
|
-
所要時間(score)は9.4
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
2016年 2月 27日 12時 45分 26秒
|
278
|
-
|
279
|
-
所要時間(score)は13.0
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
2016年 2月 28日 2時 27分 20秒
|
284
|
-
|
285
|
-
所要時間(score)は7.4
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
2016年 5月 2日 16時 43分 32秒
|
290
|
-
|
291
|
-
所要時間(score)は6.3
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
2017年 9月 14日 10時 21分 18秒
|
296
|
-
|
297
|
-
所要時間(score)は6.0
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
count1は13
|
111
|
+
/* 実行結果
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
C:\MinGW\users\chap09\kadai>gcc -I. -o narabekae3 narabekae3.c -Wall
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
C:\MinGW\users\chap09\kadai>narabekae3
|
120
|
+
|
121
|
+
実行時間の短い順にソートします。
|
122
|
+
|
123
|
+
2017年 9月 14日 10時 21分 18秒
|
124
|
+
|
125
|
+
6.0秒
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
2015年 5月 2日 16時 43分 32秒
|
130
|
+
|
131
|
+
6.3秒
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
2016年 1月 3日 1時 9分 11秒
|
136
|
+
|
137
|
+
7.5秒
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
2015年 12月 7日 19時 59分 8秒
|
142
|
+
|
143
|
+
8.0秒
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
2015年 6月 4日 19時 2分 44秒
|
148
|
+
|
149
|
+
7.5秒
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
2016年 2月 28日 2時 27分 20秒
|
154
|
+
|
155
|
+
7.8秒
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
2016年 5月 31日 21時 9分 53秒
|
160
|
+
|
161
|
+
7.0秒
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
2016年 4月 5日 19時 16分 8秒
|
166
|
+
|
167
|
+
9.0秒
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
2016年 8月 7日 22時 31分 52秒
|
172
|
+
|
173
|
+
9.3秒
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
2014年 1月 4日 23時 43分 50秒
|
178
|
+
|
179
|
+
10.2秒
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
2017年 9月 16日 8時 18分 10秒
|
184
|
+
|
185
|
+
8.6秒
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
2017年 9月 16日 8時 18分 10秒
|
190
|
+
|
191
|
+
10.6秒
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
2014年 2月 12日 28時 31分 49秒
|
196
|
+
|
197
|
+
13.0秒
|
302
198
|
|
303
199
|
|
304
200
|
|
@@ -306,107 +202,11 @@
|
|
306
202
|
|
307
203
|
C:\MinGW\users\chap09\kadai>
|
308
204
|
|
309
|
-
|
310
|
-
|
311
|
-
実行結果(望む結果)
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
C:\MinGW\users\chap09\kadai>gcc -I. -o test6 test6.c -Wall
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
C:\MinGW\users\chap09\kadai>test6
|
320
|
-
|
321
|
-
count0:13
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
2017年 9月 16日 8時 52分 18秒
|
326
|
-
|
327
|
-
所要時間(score)は10.6
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
2015年 12月 7日 19時 59分 8秒
|
332
|
-
|
333
|
-
所要時間(score)は8.0
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
2016年 1月 4日 1時 9分 11秒
|
338
|
-
|
339
|
-
所要時間(score)は7.5
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
2016年 1月 4日 19時 16分 8秒
|
344
|
-
|
345
|
-
所要時間(score)は9.0
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
2016年 1月 4日 19時 2分 44秒
|
350
|
-
|
351
|
-
所要時間(score)は7.5
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
2016年 1月 4日 22時 31分 52秒
|
356
|
-
|
357
|
-
所要時間(score)は9.3
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
2016年 1月 4日 23時 33分 50秒
|
362
|
-
|
363
|
-
所要時間(score)は10.2
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
2016年 1月 31日 21時 9分 53秒
|
368
|
-
|
369
|
-
所要時間(score)は7.0
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
2016年 2月 2日 8時 49分 9秒
|
374
|
-
|
375
|
-
所要時間(score)は9.4
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
2016年 2月 27日 12時 45分 26秒
|
380
|
-
|
381
|
-
所要時間(score)は13.0
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
2016年 2月 28日 2時 27分 20秒
|
386
|
-
|
387
|
-
所要時間(score)は7.4
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
2016年 5月 2日 16時 43分 32秒
|
392
|
-
|
393
|
-
所要時間(score)は6.3
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
2017年 9月 14日 10時 21分 18秒
|
398
|
-
|
399
|
-
所要時間(score)は6.0
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
count3:13
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
205
|
+
*/
|
408
|
-
|
409
|
-
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
410
210
|
|
411
211
|
|
412
212
|
|
1
コードの修正と実行結果の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,19 +2,15 @@
|
|
2
2
|
|
3
3
|
コンパイルはできる状態です。コードの下に実行結果を張り付けています。
|
4
4
|
|
5
|
-
よろしくおねがいいたします。
|
5
|
+
よろしくおねがいいたします。実行時間時間の短い順が表示されない。
|
6
6
|
|
7
7
|
```
|
8
8
|
|
9
9
|
コード
|
10
10
|
|
11
|
-
/* 構造体の配列を宣言して、ファイルからデータを読み込むサンプルプログラムです。
|
12
|
-
|
13
|
-
|
11
|
+
/* "LACKNUM.DAT"から実行日時とその時の実行時間を読み込んで表示する。
|
14
|
-
|
12
|
+
|
15
|
-
そのあと実行時間時間の短い順に並べ替えて表示する。
|
13
|
+
そのあと実行時間時間の短い順に並べ替えて表示する。 */
|
16
|
-
|
17
|
-
*/
|
18
14
|
|
19
15
|
#include <stdio.h>
|
20
16
|
|
@@ -28,11 +24,11 @@
|
|
28
24
|
|
29
25
|
char dtfile[] = "LACKNUM.DAT";
|
30
26
|
|
31
|
-
char dtfile2[] = "LACKNUM2.DAT";// 最高記録用のファイル
|
27
|
+
char dtfile2[] = "LACKNUM2.DAT"; // 最高記録用のファイル
|
32
|
-
|
33
|
-
|
34
|
-
|
28
|
+
|
29
|
+
|
30
|
+
|
35
|
-
typedef struct{ // 構造体の宣言
|
31
|
+
typedef struct{ // 構造体の宣言
|
36
32
|
|
37
33
|
int tm_year;
|
38
34
|
|
@@ -44,27 +40,15 @@
|
|
44
40
|
|
45
41
|
int tm_min;
|
46
42
|
|
47
|
-
int tm_sec;
|
43
|
+
int tm_sec;
|
48
|
-
|
49
|
-
|
44
|
+
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
TIME_DATA local[MAXCNT];
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
typedef struct { // 構造体の宣言
|
58
|
-
|
59
|
-
TIME_DATA local;
|
60
|
-
|
61
|
-
double score;
|
45
|
+
double score;
|
62
|
-
|
46
|
+
|
63
|
-
}
|
47
|
+
}SCORE_DATA;
|
64
|
-
|
65
|
-
|
66
|
-
|
48
|
+
|
49
|
+
|
50
|
+
|
67
|
-
// 比較
|
51
|
+
// 比較関数
|
68
52
|
|
69
53
|
int cmpptr( const void *p, const void *q ) {
|
70
54
|
|
@@ -74,208 +58,266 @@
|
|
74
58
|
|
75
59
|
|
76
60
|
|
77
|
-
double data_narabekae(double* p,double* q)
|
61
|
+
double data_narabekae(int* count,double* p,double* q)
|
78
62
|
|
79
63
|
{
|
80
64
|
|
65
|
+
FILE *fp;
|
66
|
+
|
67
|
+
int i;
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
// double bestscore;
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
SCORE_DATA local[MAXCNT]; // 構造体の宣言
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
if((fp=fopen(dtfile, "rb"))==NULL ){
|
80
|
+
|
81
|
+
printf( "ファイルがオープンできません\n" );
|
82
|
+
|
83
|
+
exit( 1 );
|
84
|
+
|
85
|
+
}
|
86
|
+
|
87
|
+
for(i = 0; i<MAXCNT; i++) {
|
88
|
+
|
89
|
+
if(fscanf(fp,"%d %d %d %d %d %d %lf\n" // 構造体配列への読み込み
|
90
|
+
|
91
|
+
, &local[i].tm_year,&local[i].tm_mon, &local[i].tm_mday,
|
92
|
+
|
93
|
+
&local[i].tm_hour, &local[i].tm_min,&local[i].tm_sec,&local[i].score )!= 7) break;
|
94
|
+
|
95
|
+
(*count)++;
|
96
|
+
|
97
|
+
}
|
98
|
+
|
99
|
+
printf("\ncount0:\n\n",*count);
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
// qsort( local, *count, sizeof(SCORE_DATA*), cmpptr );
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
printf("\n過去の履歴データ\n-------------------------- \n");
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
for(i=0;i<*count;i++){
|
112
|
+
|
113
|
+
printf( "%d年 %d月 %d日 %d時 %d分 %d秒 \n所要時間(score)は%.1f\n\n"
|
114
|
+
|
115
|
+
,local[i].tm_year, local[i].tm_mon, local[i].tm_mday,
|
116
|
+
|
117
|
+
local[i].tm_hour,local[i].tm_min,local[i].tm_sec ,local[i].score);
|
118
|
+
|
119
|
+
}
|
120
|
+
|
121
|
+
fflush(stdout);
|
122
|
+
|
123
|
+
fclose(fp);
|
124
|
+
|
125
|
+
printf("count1は%d\n\n", *count);
|
126
|
+
|
127
|
+
return *count;
|
128
|
+
|
129
|
+
}
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
int main(void)
|
134
|
+
|
135
|
+
{
|
136
|
+
|
81
137
|
FILE *fp;
|
82
138
|
|
83
139
|
int i;
|
84
140
|
|
85
|
-
int j=0;
|
86
|
-
|
87
141
|
int count=0;
|
88
142
|
|
143
|
+
double p,q;
|
144
|
+
|
89
|
-
double score;
|
145
|
+
// double bestscore;
|
90
|
-
|
91
|
-
double bestscore; //これまでの最短所要時間
|
92
146
|
|
93
147
|
|
94
148
|
|
149
|
+
data_narabekae(&count,&p,&q);
|
150
|
+
|
95
151
|
|
96
152
|
|
97
|
-
SCORE_DATA stars[MAXCNT]; // 構造体配列の宣言
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
153
|
+
/* if((fp=fopen( dtfile2, "wb" ))==NULL ){
|
102
|
-
|
154
|
+
|
103
|
-
printf( "ファイルがオープンできません\n" );
|
155
|
+
printf( "ファイルがオープンできません\n" );
|
104
|
-
|
156
|
+
|
105
|
-
exit( 1 );
|
157
|
+
exit( 1 );
|
106
158
|
|
107
159
|
}
|
108
160
|
|
161
|
+
|
162
|
+
|
109
|
-
|
163
|
+
for(i=0;i<10;i++){
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
164
|
+
|
114
|
-
|
115
|
-
|
165
|
+
if(fscanf( fp, "%d %d %d %d %d %d %lf\n"
|
116
|
-
|
117
|
-
|
166
|
+
|
118
|
-
|
119
|
-
|
167
|
+
,&local[i].tm_year+1900, &local[i].tm_mon+1, &local[i].tm_mday,
|
120
|
-
|
121
|
-
|
168
|
+
|
122
|
-
|
123
|
-
|
169
|
+
&local[i].tm_hour,&local[i].tm_min,&local[i].tm_sec ,&local[i].score)!=7)break;
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
170
|
+
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
local[j].tm_year=local->tm_year;
|
132
|
-
|
133
|
-
local[j].tm_mon=local->tm_mon;
|
134
|
-
|
135
|
-
local[j].tm_mday=local->tm_mday;
|
136
|
-
|
137
|
-
local[j].tm_hour=local->tm_hour;
|
138
|
-
|
139
|
-
local[j].tm_min=local->tm_min;
|
140
|
-
|
141
|
-
local[j].tm_sec=local->tm_sec;
|
142
|
-
|
143
|
-
stars[j].score=stars-> score;
|
144
|
-
|
145
|
-
|
171
|
+
}
|
146
|
-
|
147
|
-
count++;
|
148
172
|
|
149
173
|
|
150
174
|
|
175
|
+
if((fp=fopen( dtfile2, "rb" ))==NULL ){
|
176
|
+
|
151
|
-
printf("
|
177
|
+
printf( "ファイルがオープンできません\n" );
|
152
|
-
|
153
|
-
|
154
|
-
|
178
|
+
|
155
|
-
|
179
|
+
exit( 1 );
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
180
|
+
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
qsort( stars, count, sizeof(SCORE_DATA*), cmpptr );
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
printf("\n過去のbestten\n-------------------------- \n");
|
168
|
-
|
169
|
-
|
181
|
+
}
|
170
|
-
|
182
|
+
|
171
|
-
|
183
|
+
for(i=0;i<10;i++){
|
172
|
-
|
184
|
+
|
173
|
-
printf(
|
185
|
+
printf("%d年 %d月 %d日 %d時 %d分 %d秒 \n所要時間(score)は%.1f\n\n"
|
174
|
-
|
186
|
+
|
175
|
-
,
|
187
|
+
,local[i].tm_year+1900, local[i].tm_mon+1, local[i].tm_mday,
|
176
|
-
|
188
|
+
|
177
|
-
|
189
|
+
local[i].tm_hour,local[i].tm_min,local[i].tm_sec );
|
178
190
|
|
179
191
|
|
180
192
|
|
181
|
-
printf("
|
193
|
+
printf("最短所要時間(score)は%.1f", local[0].score);
|
182
|
-
|
183
|
-
|
194
|
+
|
184
|
-
|
185
|
-
|
195
|
+
|
186
|
-
|
187
|
-
|
196
|
+
|
188
|
-
|
189
|
-
}
|
190
|
-
|
191
|
-
|
197
|
+
} */
|
192
198
|
|
193
199
|
fclose(fp);
|
194
200
|
|
195
|
-
printf("count2は%d\n\n", count);
|
196
|
-
|
197
|
-
|
201
|
+
return 0;
|
198
202
|
|
199
203
|
}
|
200
204
|
|
201
205
|
|
202
206
|
|
203
|
-
int main(void)
|
204
|
-
|
205
|
-
{
|
206
|
-
|
207
|
-
int count=0;
|
208
|
-
|
209
|
-
double p,q;
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
data_narabekae(&p,&q);
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
printf("count3:%d\n\n", count);
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
return 0;
|
222
|
-
|
223
|
-
}
|
224
|
-
|
225
|
-
|
226
|
-
|
227
207
|
/*実際の結果
|
228
208
|
|
209
|
+
|
210
|
+
|
211
|
+
C:\MinGW\users\chap09\kadai>gcc -I. -o narabekae narabekae.c pdcurses.a
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
C:\MinGW\users\chap09\kadai>narabekae
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
過去の履歴データ
|
220
|
+
|
221
|
+
--------------------------
|
222
|
+
|
223
|
+
2017年 9月 16日 8時 52分 18秒
|
224
|
+
|
225
|
+
所要時間(score)は10.6
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
2015年 12月 7日 19時 59分 8秒
|
230
|
+
|
231
|
+
所要時間(score)は8.0
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
2016年 1月 4日 1時 9分 11秒
|
236
|
+
|
237
|
+
所要時間(score)は7.5
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
2016年 1月 4日 19時 16分 8秒
|
242
|
+
|
243
|
+
所要時間(score)は9.0
|
244
|
+
|
245
|
+
|
246
|
+
|
247
|
+
2016年 1月 4日 19時 2分 44秒
|
248
|
+
|
249
|
+
所要時間(score)は7.5
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
2016年 1月 4日 22時 31分 52秒
|
254
|
+
|
255
|
+
所要時間(score)は9.3
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
2016年 1月 4日 23時 33分 50秒
|
260
|
+
|
261
|
+
所要時間(score)は10.2
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
2016年 1月 31日 21時 9分 53秒
|
266
|
+
|
267
|
+
所要時間(score)は7.0
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
2016年 2月 2日 8時 49分 9秒
|
272
|
+
|
273
|
+
所要時間(score)は9.4
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
2016年 2月 27日 12時 45分 26秒
|
278
|
+
|
279
|
+
所要時間(score)は13.0
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
2016年 2月 28日 2時 27分 20秒
|
284
|
+
|
285
|
+
所要時間(score)は7.4
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
2016年 5月 2日 16時 43分 32秒
|
290
|
+
|
291
|
+
所要時間(score)は6.3
|
292
|
+
|
293
|
+
|
294
|
+
|
295
|
+
2017年 9月 14日 10時 21分 18秒
|
296
|
+
|
297
|
+
所要時間(score)は6.0
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
count1は13
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
C:\MinGW\users\chap09\kadai>
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
実行結果(望む結果)
|
312
|
+
|
313
|
+
|
314
|
+
|
229
315
|
C:\MinGW\users\chap09\kadai>gcc -I. -o test6 test6.c -Wall
|
230
316
|
|
231
317
|
|
232
318
|
|
233
319
|
C:\MinGW\users\chap09\kadai>test6
|
234
320
|
|
235
|
-
count0:0
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
1900年 1月 0日 0時 0分 0秒
|
240
|
-
|
241
|
-
得点(所要時間)は0.0秒
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
count1は1
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
過去のbestten
|
252
|
-
|
253
|
-
--------------------------
|
254
|
-
|
255
|
-
1900年 1月 0日 6419076時 0分 1秒
|
256
|
-
|
257
|
-
得点(所要時間)は 0.0秒です。
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
count3:0
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
実行結果(望む結果)
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
C:\MinGW\users\chap09\kadai>gcc -I. -o test6 test6.c -Wall
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
C:\MinGW\users\chap09\kadai>test6
|
278
|
-
|
279
321
|
count0:13
|
280
322
|
|
281
323
|
|