質問するログイン新規登録

質問編集履歴

3

コード修正と実行結果

2017/09/24 06:47

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,105 +1,96 @@
1
1
  実行日時、実行時間を、実行時間の短い順に表示したいのですが、
2
2
  コンパイルはできる状態です。コードの下に実行結果を張り付けています。
3
- よろしくおねがいいたします。実行時間時間の短い順に表示されない。
3
+ 実行時間時間の短い順に表示されない。
4
4
  ```
5
5
  コード
6
- /* qsort を使って構造体の配列をソートするプログラム例です。
7
- 構造体配列time_t を実行時間の短い順にソートします。
8
- */
9
-
10
6
  #include <stdio.h>
11
7
  #include <stdlib.h>
12
- #define MAXCNT 100
13
8
 
14
- typedef struct{
9
+ #define NDATA ((sizeof lst)/(sizeof(DATA_TIME)))
15
- int tm_year;
16
- int tm_mon;
17
- int tm_mday;
18
- int tm_hour;
19
- int tm_min;
20
- int tm_sec;
21
- double score;
22
- }tim_t;
23
10
 
11
+ typedef struct //
12
+ {
13
+ int year; //
14
+ int mon; //
15
+ int mday; //
16
+ int hour; //
17
+ int min; //
18
+ int sec;
19
+ double score;
20
+ }DATA_TIME;
21
+
24
- // --------------- 比較用の関数 cmp -------------------
22
+ // --------------- 比較用の関数 cmp cmp -------------------
25
- int cmp( const void *p, const void *q ) {
23
+ int cmpptr( const void *p, const void *q ) {
26
- return ((tim_t*)p)->score - ((tim_t*)q)->score;
24
+ return (*(DATA_TIME**)p)->score - (*(DATA_TIME**)q)->score;
27
25
  }
26
+ // ----------------------------------------------------
28
27
 
29
- int main(void)
28
+ int main()
30
29
  {
31
- tim_t data_t[]={{2017,9,16,8,18,10,10.6},
30
+ DATA_TIME lst[]={{2017, 9,16, 8,18,10,10.6},
32
- {2015,12,7,19,59,8,8.0},
31
+ {2015,12, 7,19,59, 8, 8.0},
33
- {2016,1,3,1,9,11,7.5},
32
+ {2016, 1, 3, 1, 9,11, 7.5},
34
- {2016,4,5,19,16,8,9.0},
33
+ {2016, 4, 5,19,16, 8, 9.0},
35
- {2015,6,4,19,2,44,7.5},
34
+ {2015, 6, 4,19, 2,44, 7.5},
36
- {2016,8,7,22,31,52,9.3},
35
+ {2016, 8, 7,22,31,52, 9.3},
37
- {2014,1,4,23,43,50,10.2},
36
+ {2014, 1, 4,23,43,50,10.2},
38
- {2016,5,31,21,9,53,7.0},
37
+ {2016, 5,31,21, 9,53, 7.0},
39
- {2014,2,12,28,31,49,13.0},
38
+ {2014, 2,12,28,31,49,13.0},
40
- {2016,2,28,2,27,20,7.8},
39
+ {2016, 2,28, 2,27,20, 7.8},
41
- {2015,5,2,16,43,32,6.3},
40
+ {2015, 5, 2,16,43,32, 6.3},
42
- {2017,9,14,10,21,18,6.0},
41
+ {2017, 9,14,10,21,18, 6.0},
43
- {2017,9,16,8,18,10,8.6}};
42
+ {2017, 9,16, 8,18,10, 8.6}};
43
+
44
- int i;
44
+ int i;
45
+
46
+ DATA_TIME *plst[NDATA];
45
47
 
48
+ // ポインタの配列 plst に構造体配列のアドレスを代入
46
- int n=sizeof(data_t)/sizeof(tim_t);
49
+ for(i=0; i<NDATA; i++) plst[i]=&lst[i];
47
50
 
51
+ // 実行時間の短い順にソート
48
- qsort( data_t, n, sizeof(tim_t), cmp );
52
+ qsort(plst, NDATA, sizeof(DATA_TIME*), cmpptr );
49
53
 
50
- printf( "実行時間短い順にソ\ートします。\n");
54
+ //並べ替え後内容を表示
51
- for(i=0; i<n; i++){
55
+ for( i=0; i<NDATA; i++ )
52
- printf("%4d年 %2d月 %2d日 %2d時 %2d分 %2d\n %2.1f秒\n\n"
56
+ printf(" %d年 %d月 %d日 %d時 %d分 %d実行時間:%.1f秒\n\n"
57
+ ,plst[i]->year, plst[i]->mon, plst[i]->mday,
53
- , 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 );
58
+ plst[i]->hour, plst[i]->min, plst[i]->sec, plst[i]->score);
54
- }
55
59
  }
56
- /* 実行結果
57
60
 
61
+ /*実行結果
58
- C:\MinGW\users\chap09\kadai>gcc -I. -o narabekae3 narabekae3.c -Wall
62
+ C:\MinGW\users\chap09\kadai>gcc -I. -o narabekae2 narabekae2.c -Wall
59
63
 
60
- C:\MinGW\users\chap09\kadai>narabekae3
64
+ C:\MinGW\users\chap09\kadai> narabekae2
61
- 実行時間の短い順にソートします。
62
- 2017年 9月 14日 10時 21分 18秒
65
+ 2017年 9月 14日 10時 21分 18秒 実行時間:6.0秒
63
- 6.0秒
64
66
 
65
- 2015年 5月 2日 16時 43分 32秒
67
+ 2015年 5月 2日 16時 43分 32秒 実行時間:6.3秒
66
- 6.3秒
67
68
 
68
- 2016年 1月 3日 1時 9分 11秒
69
+ 2016年 1月 3日 1時 9分 11秒 実行時間:7.5秒
69
- 7.5秒
70
70
 
71
- 2015年 12月 7日 19時 59分 8秒
71
+ 2015年 12月 7日 19時 59分 8秒 実行時間:8.0秒
72
- 8.0秒
73
72
 
74
- 2015年 6月 4日 19時 2分 44秒
73
+ 2015年 6月 4日 19時 2分 44秒 実行時間:7.5秒 ・・・おかしい
75
- 7.5秒
76
74
 
77
- 2016年 2月 28日 2時 27分 20秒
75
+ 2016年 2月 28日 2時 27分 20秒 実行時間:7.8秒 ・・・おかしい
78
- 7.8秒
79
76
 
80
- 2016年 5月 31日 21時 9分 53秒
77
+ 2016年 5月 31日 21時 9分 53秒 実行時間:7.0秒 ・・・おかしい
81
- 7.0秒
82
78
 
83
- 2016年 4月 5日 19時 16分 8秒
79
+ 2016年 4月 5日 19時 16分 8秒 実行時間:9.0秒
84
- 9.0秒
85
80
 
86
- 2016年 8月 7日 22時 31分 52秒
81
+ 2016年 8月 7日 22時 31分 52秒 実行時間:9.3秒
87
- 9.3秒
88
82
 
89
- 2014年 1月 4日 23時 43分 50秒
83
+ 2014年 1月 4日 23時 43分 50秒 実行時間:10.2秒
90
- 10.2秒
91
84
 
92
- 2017年 9月 16日 8時 18分 10秒
85
+ 2017年 9月 16日 8時 18分 10秒 実行時間:8.6秒 ・・・おかしい
93
- 8.6秒
94
86
 
95
- 2017年 9月 16日 8時 18分 10秒
87
+ 2017年 9月 16日 8時 18分 10秒 実行時間:10.6秒
96
- 10.6秒
97
88
 
98
- 2014年 2月 12日 28時 31分 49秒
89
+ 2014年 2月 12日 28時 31分 49秒 実行時間:13.0秒
99
- 13.0秒
100
90
 
101
91
 
102
92
  C:\MinGW\users\chap09\kadai>
93
+
103
94
  */
104
95
 
105
96
 

2

コードの変更、結果の変更

2017/09/24 06:47

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,207 +1,107 @@
1
- 実行日時、実行時間を表示して、実行時間の短い順に表示したいのですが、
1
+ 実行日時、実行時間を、実行時間の短い順に表示したいのですが、
2
2
  コンパイルはできる状態です。コードの下に実行結果を張り付けています。
3
- よろしくおねがいいたします。実行時間時間の短い順表示されない。
3
+ よろしくおねがいいたします。実行時間時間の短い順表示されない。
4
4
  ```
5
5
  コード
6
- /* "LACKNUM.DAT"から実行日時とそ時の実行時間読み込んで表示する。
6
+ /* qsort を使って構造体配列ソートするプログラム例です
7
- そのあと実行時間時間の短い順に並べ替えて表示 */
7
+ 構造体配列time_t を実行時間の短い順にソートします。
8
+ */
9
+
8
10
  #include <stdio.h>
9
11
  #include <stdlib.h>
10
- #include <time.h>
11
-
12
12
  #define MAXCNT 100
13
- char dtfile[] = "LACKNUM.DAT";
14
- char dtfile2[] = "LACKNUM2.DAT"; // 最高記録用のファイル
15
13
 
16
- typedef struct{ // 構造体の宣言
14
+ typedef struct{
17
- int tm_year;
15
+ int tm_year;
18
- int tm_mon;
16
+ int tm_mon;
19
- int tm_mday;
17
+ int tm_mday;
20
- int tm_hour;
18
+ int tm_hour;
21
- int tm_min;
19
+ int tm_min;
22
- int tm_sec;
20
+ int tm_sec;
23
- double score;
21
+ double score;
24
- }SCORE_DATA;
22
+ }tim_t;
25
23
 
26
- // 比較関数
24
+ // --------------- 比較用の関数 cmp -------------------
27
- int cmpptr( const void *p, const void *q ) {
25
+ int cmp( const void *p, const void *q ) {
28
- return (*(SCORE_DATA**)p)->score - (*(SCORE_DATA**)q)->score;
26
+ return ((tim_t*)p)->score - ((tim_t*)q)->score;
29
27
  }
30
28
 
31
- double data_narabekae(int* count,double* p,double* q)
29
+ int main(void)
32
30
  {
31
+ tim_t data_t[]={{2017,9,16,8,18,10,10.6},
32
+ {2015,12,7,19,59,8,8.0},
33
+ {2016,1,3,1,9,11,7.5},
34
+ {2016,4,5,19,16,8,9.0},
35
+ {2015,6,4,19,2,44,7.5},
36
+ {2016,8,7,22,31,52,9.3},
37
+ {2014,1,4,23,43,50,10.2},
38
+ {2016,5,31,21,9,53,7.0},
39
+ {2014,2,12,28,31,49,13.0},
40
+ {2016,2,28,2,27,20,7.8},
41
+ {2015,5,2,16,43,32,6.3},
42
+ {2017,9,14,10,21,18,6.0},
33
- FILE *fp;
43
+ {2017,9,16,8,18,10,8.6}};
34
- int i;
44
+ int i;
35
-
36
- // double bestscore;
45
+
37
-
38
- SCORE_DATA local[MAXCNT]; // 構造体の宣言
39
-
40
- if((fp=fopen(dtfile, "rb"))==NULL ){
41
- printf( "ファイルがオープンできません\n" );
42
- exit( 1 );
43
- }
44
- for(i = 0; i<MAXCNT; i++) {
45
- if(fscanf(fp,"%d %d %d %d %d %d %lf\n" // 構造体配列への読み込み
46
- , &local[i].tm_year,&local[i].tm_mon, &local[i].tm_mday,
47
- &local[i].tm_hour, &local[i].tm_min,&local[i].tm_sec,&local[i].score )!= 7) break;
48
- (*count)++;
49
- }
50
- printf("\ncount0:\n\n",*count);
46
+ int n=sizeof(data_t)/sizeof(tim_t);
51
47
 
52
- // qsort( local, *count, sizeof(SCORE_DATA*), cmpptr );
48
+ qsort( data_t, n, sizeof(tim_t), cmp );
53
49
 
54
- printf("\n過去履歴デ\n-------------------------- \n");
50
+ printf( "実行時間短い順にソ\トします。\n");
55
-
56
- for(i=0;i<*count;i++){
51
+ for(i=0; i<n; i++){
57
- printf( "%d年 %d月 %d日 %d時 %d分 %d \n所要時間(score)は%.1f\n\n"
52
+ printf("%4d年 %2d月 %2d日 %2d時 %2d分 %2d秒\n %2.1f\n\n"
58
- ,local[i].tm_year, local[i].tm_mon, local[i].tm_mday,
59
- local[i].tm_hour,local[i].tm_min,local[i].tm_sec ,local[i].score);
53
+ , 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 );
60
- }
61
- fflush(stdout);
62
- fclose(fp);
63
- printf("count1は%d\n\n", *count);
64
- return *count;
65
- }
66
-
67
- int main(void)
68
- {
69
- FILE *fp;
70
- int i;
71
- int count=0;
72
- double p,q;
73
- // double bestscore;
74
-
75
- data_narabekae(&count,&p,&q);
76
-
77
- /* if((fp=fopen( dtfile2, "wb" ))==NULL ){
78
- printf( "ファイルがオープンできません\n" );
79
- exit( 1 );
80
54
  }
81
-
82
- for(i=0;i<10;i++){
83
- if(fscanf( fp, "%d %d %d %d %d %d %lf\n"
84
- ,&local[i].tm_year+1900, &local[i].tm_mon+1, &local[i].tm_mday,
85
- &local[i].tm_hour,&local[i].tm_min,&local[i].tm_sec ,&local[i].score)!=7)break;
86
- }
87
-
88
- if((fp=fopen( dtfile2, "rb" ))==NULL ){
89
- printf( "ファイルがオープンできません\n" );
90
- exit( 1 );
91
- }
92
- for(i=0;i<10;i++){
93
- printf("%d年 %d月 %d日 %d時 %d分 %d秒 \n所要時間(score)は%.1f\n\n"
94
- ,local[i].tm_year+1900, local[i].tm_mon+1, local[i].tm_mday,
95
- local[i].tm_hour,local[i].tm_min,local[i].tm_sec );
96
-
97
- printf("最短所要時間(score)は%.1f", local[0].score);
98
-
99
- } */
100
- fclose(fp);
101
- return 0;
102
55
  }
56
+ /* 実行結果
103
57
 
104
- /*実際の結果
58
+ C:\MinGW\users\chap09\kadai>gcc -I. -o narabekae3 narabekae3.c -Wall
105
59
 
106
- C:\MinGW\users\chap09\kadai>gcc -I. -o narabekae narabekae.c pdcurses.a
60
+ C:\MinGW\users\chap09\kadai>narabekae3
61
+ 実行時間の短い順にソートします。
62
+ 2017年 9月 14日 10時 21分 18秒
63
+ 6.0秒
107
64
 
108
- C:\MinGW\users\chap09\kadai>narabekae
65
+ 2015年 5月 2日 16時 43分 32秒
66
+ 6.3秒
109
67
 
110
- 過去の履歴データ
111
- --------------------------
112
- 2017 9 16 8 5218
68
+ 2016 1 3 1 911
113
- 所要時間(score)は10.6
69
+ 7.5秒
114
70
 
115
- 2015年 12月 7日 19時 59分 8秒
71
+ 2015年 12月 7日 19時 59分 8秒
116
- 所要時間(score)は8.0
72
+ 8.0
117
73
 
118
- 2016 1 4日 1 911
74
+ 2015 6 4日 19 244
119
- 所要時間(score)は7.5
75
+ 7.5
120
76
 
121
- 2016年 14 19168
77
+ 2016年 228 22720
122
- 所要時間(score)は9.0
78
+ 7.8秒
123
79
 
124
- 2016年 1419 244
80
+ 2016年 53121 953
125
- 所要時間(score)は7.5
81
+ 7.0秒
126
82
 
127
- 2016年 1月 4日 2231 52
83
+ 2016年 4月 51916 8
128
- 所要時間(score)は9.3
84
+ 9.0秒
129
85
 
130
- 2016年 1 4233350
86
+ 2016年 8 7223152
131
- 所要時間(score)は10.2
87
+ 9.3秒
132
88
 
133
- 2016 1月 3121953
89
+ 2014 1月 4234350
134
- 所要時間(score)は7.0
90
+ 10.2秒
135
91
 
136
- 2016 22 8時 499
92
+ 2017 916 8時 1810
137
- 所要時間(score)は9.4
93
+ 8.6秒
138
94
 
139
- 2016 227 124526
95
+ 2017 916 81810
140
- 所要時間(score)は13.0
96
+ 10.6秒
141
97
 
142
- 2016 2月 2822720
98
+ 2014 2月 12283149
143
- 所要時間(score)は7.4
99
+ 13.0秒
144
100
 
145
- 2016年 5月 2日 16時 43分 32秒
146
- 所要時間(score)は6.3
147
101
 
148
- 2017年 9月 14日 10時 21分 18秒
149
- 所要時間(score)は6.0
150
-
151
- count1は13
152
-
153
-
154
102
  C:\MinGW\users\chap09\kadai>
103
+ */
155
104
 
156
- 実行結果(望む結果)
157
105
 
158
- C:\MinGW\users\chap09\kadai>gcc -I. -o test6 test6.c -Wall
159
106
 
160
- C:\MinGW\users\chap09\kadai>test6
161
- count0:13
162
-
163
- 2017年 9月 16日 8時 52分 18秒
164
- 所要時間(score)は10.6
165
-
166
- 2015年 12月 7日 19時 59分 8秒
167
- 所要時間(score)は8.0
168
-
169
- 2016年 1月 4日 1時 9分 11秒
170
- 所要時間(score)は7.5
171
-
172
- 2016年 1月 4日 19時 16分 8秒
173
- 所要時間(score)は9.0
174
-
175
- 2016年 1月 4日 19時 2分 44秒
176
- 所要時間(score)は7.5
177
-
178
- 2016年 1月 4日 22時 31分 52秒
179
- 所要時間(score)は9.3
180
-
181
- 2016年 1月 4日 23時 33分 50秒
182
- 所要時間(score)は10.2
183
-
184
- 2016年 1月 31日 21時 9分 53秒
185
- 所要時間(score)は7.0
186
-
187
- 2016年 2月 2日 8時 49分 9秒
188
- 所要時間(score)は9.4
189
-
190
- 2016年 2月 27日 12時 45分 26秒
191
- 所要時間(score)は13.0
192
-
193
- 2016年 2月 28日 2時 27分 20秒
194
- 所要時間(score)は7.4
195
-
196
- 2016年 5月 2日 16時 43分 32秒
197
- 所要時間(score)は6.3
198
-
199
- 2017年 9月 14日 10時 21分 18秒
200
- 所要時間(score)は6.0
201
-
202
- count3:13
203
-
204
- 後短い時間順省略
205
- C:\MinGW\users\chap09\kadai>
206
-
207
107
  ```

1

コードの修正と実行結果の変更

2017/09/24 04:32

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,137 +1,158 @@
1
1
  実行日時、実行時間を表示して、実行時間の短い順に表示したいのですが、
2
2
  コンパイルはできる状態です。コードの下に実行結果を張り付けています。
3
- よろしくおねがいいたします。
3
+ よろしくおねがいいたします。実行時間時間の短い順が表示されない。
4
4
  ```
5
5
  コード
6
- /* 構造体の配列を宣言して、ファイルからデータを読み込むサンプルプログラムです。
7
- "LACKNUM.DAT"から実行日時とその時の実行時間を読み込んで表示する。
6
+ /* "LACKNUM.DAT"から実行日時とその時の実行時間を読み込んで表示する。
8
- そのあと実行時間時間の短い順に並べ替えて表示する。
7
+ そのあと実行時間時間の短い順に並べ替えて表示する。 */
9
- */
10
8
  #include <stdio.h>
11
9
  #include <stdlib.h>
12
10
  #include <time.h>
13
11
 
14
12
  #define MAXCNT 100
15
13
  char dtfile[] = "LACKNUM.DAT";
16
- char dtfile2[] = "LACKNUM2.DAT";// 最高記録用のファイル
14
+ char dtfile2[] = "LACKNUM2.DAT"; // 最高記録用のファイル
17
15
 
18
- typedef struct{ // 構造体の宣言
16
+ typedef struct{ // 構造体の宣言
19
17
  int tm_year;
20
18
  int tm_mon;
21
19
  int tm_mday;
22
20
  int tm_hour;
23
21
  int tm_min;
24
- int tm_sec;
22
+ int tm_sec;
23
+ double score;
25
- }TIME_DATA;
24
+ }SCORE_DATA;
26
25
 
27
- TIME_DATA local[MAXCNT];
28
-
29
- typedef struct { // 構造体の宣言
30
- TIME_DATA local;
31
- double score;
32
- } SCORE_DATA;
33
-
34
- // 比較用の関数 cmp
26
+ // 比較関数
35
27
  int cmpptr( const void *p, const void *q ) {
36
28
  return (*(SCORE_DATA**)p)->score - (*(SCORE_DATA**)q)->score;
37
29
  }
38
30
 
39
- double data_narabekae(double* p,double* q)
31
+ double data_narabekae(int* count,double* p,double* q)
40
32
  {
33
+ FILE *fp;
34
+ int i;
35
+
36
+ // double bestscore;
37
+
38
+ SCORE_DATA local[MAXCNT]; // 構造体の宣言
39
+
40
+ if((fp=fopen(dtfile, "rb"))==NULL ){
41
+ printf( "ファイルがオープンできません\n" );
42
+ exit( 1 );
43
+ }
44
+ for(i = 0; i<MAXCNT; i++) {
45
+ if(fscanf(fp,"%d %d %d %d %d %d %lf\n" // 構造体配列への読み込み
46
+ , &local[i].tm_year,&local[i].tm_mon, &local[i].tm_mday,
47
+ &local[i].tm_hour, &local[i].tm_min,&local[i].tm_sec,&local[i].score )!= 7) break;
48
+ (*count)++;
49
+ }
50
+ printf("\ncount0:\n\n",*count);
51
+
52
+ // qsort( local, *count, sizeof(SCORE_DATA*), cmpptr );
53
+
54
+ printf("\n過去の履歴データ\n-------------------------- \n");
55
+
56
+ for(i=0;i<*count;i++){
57
+ printf( "%d年 %d月 %d日 %d時 %d分 %d秒 \n所要時間(score)は%.1f\n\n"
58
+ ,local[i].tm_year, local[i].tm_mon, local[i].tm_mday,
59
+ local[i].tm_hour,local[i].tm_min,local[i].tm_sec ,local[i].score);
60
+ }
61
+ fflush(stdout);
62
+ fclose(fp);
63
+ printf("count1は%d\n\n", *count);
64
+ return *count;
65
+ }
66
+
67
+ int main(void)
68
+ {
41
69
  FILE *fp;
42
70
  int i;
43
- int j=0;
44
71
  int count=0;
72
+ double p,q;
45
- double score; //これまでの履歴の所要時間
73
+ // double bestscore;
46
- double bestscore; //これまでの最短所要時間
47
74
 
75
+ data_narabekae(&count,&p,&q);
48
76
 
49
- SCORE_DATA stars[MAXCNT]; // 構造体配列の宣言
50
-
51
- if((fp=fopen( dtfile, "rb" ))==NULL ){
77
+ /* if((fp=fopen( dtfile2, "wb" ))==NULL ){
52
- printf( "ファイルがオープンできません\n" );
78
+ printf( "ファイルがオープンできません\n" );
53
- exit( 1 );
79
+ exit( 1 );
54
80
  }
81
+
55
- printf("count0:%d\n\n",count);
82
+ for(i=0;i<10;i++){
56
-
57
- while((i = fread(&stars, sizeof(struct tm), 1, fp)) > 0 ){
58
- printf("%d %d %d %d %d %d\n",
83
+ if(fscanf( fp, "%d %d %d %d %d %d %lf\n"
59
- local->tm_year + 1900, local->tm_mon + 1,
60
- local->tm_mday, local->tm_hour, local->tm_min, local->tm_sec);
84
+ ,&local[i].tm_year+1900, &local[i].tm_mon+1, &local[i].tm_mday,
61
- fread(&score, sizeof(double), 1, fp);
62
- printf("得点(所要時間)は%.1f秒\n\n",stars-> score);
85
+ &local[i].tm_hour,&local[i].tm_min,&local[i].tm_sec ,&local[i].score)!=7)break;
63
-
64
- // SCORE_DATA *stars[MAXCNT]={0}; // 構造体配列の宣言
65
-
66
- local[j].tm_year=local->tm_year;
67
- local[j].tm_mon=local->tm_mon;
68
- local[j].tm_mday=local->tm_mday;
69
- local[j].tm_hour=local->tm_hour;
70
- local[j].tm_min=local->tm_min;
71
- local[j].tm_sec=local->tm_sec;
72
- stars[j].score=stars-> score;
73
- j++;
86
+ }
74
- count++;
75
87
 
88
+ if((fp=fopen( dtfile2, "rb" ))==NULL ){
76
- printf("count1は%d\n\n", count);
89
+ printf( "ファイルがオープンできません\n" );
77
-
78
- SCORE_DATA plst[count];
90
+ exit( 1 );
79
-
80
- for(i=0; i<count; i++) plst[i] = stars[j];
81
-
82
- qsort( stars, count, sizeof(SCORE_DATA*), cmpptr );
83
-
84
- printf("\n過去のbestten\n-------------------------- \n");
85
- // 並べ替え後の内容を表示
91
+ }
86
- for(i=0;i<10;i++){
92
+ for(i=0;i<10;i++){
87
- printf( "%d年 %d月 %d日 %d時 %d分 %d秒 \n"
93
+ printf("%d年 %d月 %d日 %d時 %d分 %d秒 \n所要時間(score)は%.1f\n\n"
88
- ,plst[j].local.tm_year+1900, plst[j].local.tm_mon+1, plst[j].local.tm_mday,
94
+ ,local[i].tm_year+1900, local[i].tm_mon+1, local[i].tm_mday,
89
- plst[i].local.tm_hour,plst[i].local.tm_min,plst[i].local.tm_sec );
95
+ local[i].tm_hour,local[i].tm_min,local[i].tm_sec );
90
96
 
91
- printf("得点(所要時間 %.1f秒です。\n\n", plst[i].score);
97
+ printf("最短所要時間(score)は%.1f", local[0].score);
92
- bestscore=plst[0].score;
98
+
93
- return bestscore;
94
- }
95
- }
96
- fflush(stdout);
99
+ } */
97
100
  fclose(fp);
98
- printf("count2は%d\n\n", count);
99
- return count;
100
- }
101
-
102
- int main(void)
103
- {
104
- int count=0;
105
- double p,q;
106
-
107
- data_narabekae(&p,&q);
108
-
109
- printf("count3:%d\n\n", count);
110
-
111
101
  return 0;
112
102
  }
113
103
 
114
104
  /*実際の結果
115
- C:\MinGW\users\chap09\kadai>gcc -I. -o test6 test6.c -Wall
116
105
 
117
- C:\MinGW\users\chap09\kadai>test6
106
+ C:\MinGW\users\chap09\kadai>gcc -I. -o narabekae narabekae.c pdcurses.a
118
- count0:0
119
107
 
120
- 1900年 1月 0日 0時 0分 0秒
108
+ C:\MinGW\users\chap09\kadai>narabekae
121
- 得点(所要時間)は0.0秒
122
109
 
123
- count1は1
110
+ 過去の履歴データ
111
+ --------------------------
112
+ 2017年 9月 16日 8時 52分 18秒
113
+ 所要時間(score)は10.6
124
114
 
115
+ 2015年 12月 7日 19時 59分 8秒
116
+ 所要時間(score)は8.0
125
117
 
126
- 過去のbestten
127
- --------------------------
128
- 1900年 1月 0641907601
118
+ 2016年 1月 41911
129
- 得点(所要時間 0.0秒です。
119
+ 所要時間(score)7.5
130
120
 
121
+ 2016年 1月 4日 19時 16分 8秒
131
- count3:0
122
+ 所要時間(score)は9.0
132
123
 
124
+ 2016年 1月 4日 19時 2分 44秒
125
+ 所要時間(score)は7.5
133
126
 
127
+ 2016年 1月 4日 22時 31分 52秒
128
+ 所要時間(score)は9.3
134
129
 
130
+ 2016年 1月 4日 23時 33分 50秒
131
+ 所要時間(score)は10.2
132
+
133
+ 2016年 1月 31日 21時 9分 53秒
134
+ 所要時間(score)は7.0
135
+
136
+ 2016年 2月 2日 8時 49分 9秒
137
+ 所要時間(score)は9.4
138
+
139
+ 2016年 2月 27日 12時 45分 26秒
140
+ 所要時間(score)は13.0
141
+
142
+ 2016年 2月 28日 2時 27分 20秒
143
+ 所要時間(score)は7.4
144
+
145
+ 2016年 5月 2日 16時 43分 32秒
146
+ 所要時間(score)は6.3
147
+
148
+ 2017年 9月 14日 10時 21分 18秒
149
+ 所要時間(score)は6.0
150
+
151
+ count1は13
152
+
153
+
154
+ C:\MinGW\users\chap09\kadai>
155
+
135
156
  実行結果(望む結果)
136
157
 
137
158
  C:\MinGW\users\chap09\kadai>gcc -I. -o test6 test6.c -Wall