回答編集履歴

4

「#include <stdlib.h>」が未使用であった為、除去

2021/09/06 03:53

投稿

cx20
cx20

スコア4648

test CHANGED
@@ -112,8 +112,6 @@
112
112
 
113
113
  #include <stdio.h>
114
114
 
115
- #include <stdlib.h>
116
-
117
115
  #include "test.h"
118
116
 
119
117
 
@@ -208,8 +206,6 @@
208
206
 
209
207
  #include <stdio.h>
210
208
 
211
- #include <stdlib.h>
212
-
213
209
  #include "test.h"
214
210
 
215
211
 

3

「#define N 100」の場所を「test.h」→「main.c」に変更

2021/09/06 03:53

投稿

cx20
cx20

スコア4648

test CHANGED
@@ -16,210 +16,208 @@
16
16
 
17
17
 
18
18
 
19
- // マクロ定義
19
+ // 定義
20
+
21
+ typedef struct data {
22
+
23
+ char student_no[128];
24
+
25
+ int score_japanese;
26
+
27
+ int score_math;
28
+
29
+ int score_science;
30
+
31
+ int score_society;
32
+
33
+ int score_sum;
34
+
35
+ } Data;
36
+
37
+
38
+
39
+ // プロトタイプ宣言
40
+
41
+ void swap_Data(Data *x, Data *y);
42
+
43
+ void bubble_sort(Data *df, int n);
44
+
45
+ void read_file(char *filename, Data *df, int *n);
46
+
47
+ void show_result(Data *df, int n);
48
+
49
+
50
+
51
+ #endif
52
+
53
+ ```
54
+
55
+
56
+
57
+ ```c
58
+
59
+ // swap_Data.c
60
+
61
+ #include "test.h"
62
+
63
+
64
+
65
+ void swap_Data(Data *x, Data *y){
66
+
67
+ Data tmp = *x;
68
+
69
+ *x = *y;
70
+
71
+ *y = tmp;
72
+
73
+ }
74
+
75
+ ```
76
+
77
+
78
+
79
+ ```c
80
+
81
+ // bubble_sort.c
82
+
83
+ #include "test.h"
84
+
85
+
86
+
87
+ void bubble_sort(Data *df, int n) {
88
+
89
+ for (int i = 0; i < n-1; i++) {
90
+
91
+ for(int j = n-1; j > i; j--) {
92
+
93
+ if(df[j].score_sum - df[j-1].score_sum > 0) {
94
+
95
+ swap_Data(&df[j-1], &df[j]);
96
+
97
+ }
98
+
99
+ }
100
+
101
+ }
102
+
103
+ }
104
+
105
+ ```
106
+
107
+
108
+
109
+ ```c
110
+
111
+ // read_file.c
112
+
113
+ #include <stdio.h>
114
+
115
+ #include <stdlib.h>
116
+
117
+ #include "test.h"
118
+
119
+
120
+
121
+ void read_file(char *filename, Data *df, int *n) {
122
+
123
+ FILE *fp;
124
+
125
+ int ret;
126
+
127
+ int cnt = 0;
128
+
129
+
130
+
131
+ fp = fopen(filename, "r" );
132
+
133
+ if (fp == NULL) {
134
+
135
+ printf( "cannot open %s\n", filename);
136
+
137
+ exit(1);
138
+
139
+ }
140
+
141
+
142
+
143
+ while((ret = fscanf(fp, "%[^,],%d,%d,%d,%d ",
144
+
145
+ df[cnt].student_no, &df[cnt].score_japanese, &df[cnt].score_math, &
146
+
147
+ df[cnt].score_science, &df[cnt].score_society)) != EOF) {
148
+
149
+
150
+
151
+ df[cnt].score_sum = df[cnt].score_japanese + df[cnt].score_math
152
+
153
+ + df[cnt].score_science + df[cnt].score_society;
154
+
155
+
156
+
157
+ cnt++;
158
+
159
+ }
160
+
161
+
162
+
163
+ *n = cnt;
164
+
165
+ }
166
+
167
+ ```
168
+
169
+
170
+
171
+ ```c
172
+
173
+ // show_result.c
174
+
175
+ #include "test.h"
176
+
177
+
178
+
179
+ void show_result(Data *df, int n) {
180
+
181
+ int i;
182
+
183
+
184
+
185
+ printf("番号 国語 数学 理科 社会 合計\n");
186
+
187
+ printf("----------------------------------\n");
188
+
189
+ for (int i = 0; i < n; i++) {
190
+
191
+ printf("%s %5d%6d%6d%6d%6d\n",
192
+
193
+ df[i].student_no, df[i].score_japanese, df[i].score_math,
194
+
195
+ df[i].score_science, df[i].score_society, df[i].score_sum);
196
+
197
+ }
198
+
199
+ }
200
+
201
+ ```
202
+
203
+
204
+
205
+ ```c
206
+
207
+ // main.c
208
+
209
+ #include <stdio.h>
210
+
211
+ #include <stdlib.h>
212
+
213
+ #include "test.h"
214
+
215
+
20
216
 
21
217
  #define N 100
22
218
 
23
219
 
24
220
 
25
- // 型定義
26
-
27
- typedef struct data {
28
-
29
- char student_no[128];
30
-
31
- int score_japanese;
32
-
33
- int score_math;
34
-
35
- int score_science;
36
-
37
- int score_society;
38
-
39
- int score_sum;
40
-
41
- } Data;
42
-
43
-
44
-
45
- // プロトタイプ宣言
46
-
47
- void swap_Data(Data *x, Data *y);
48
-
49
- void bubble_sort(Data *df, int n);
50
-
51
- void read_file(char *filename, Data *df, int *n);
52
-
53
- void show_result(Data *df, int n);
54
-
55
-
56
-
57
- #endif
58
-
59
- ```
60
-
61
-
62
-
63
- ```c
64
-
65
- // swap_Data.c
66
-
67
- #include "test.h"
68
-
69
-
70
-
71
- void swap_Data(Data *x, Data *y){
72
-
73
- Data tmp = *x;
74
-
75
- *x = *y;
76
-
77
- *y = tmp;
78
-
79
- }
80
-
81
- ```
82
-
83
-
84
-
85
- ```c
86
-
87
- // bubble_sort.c
88
-
89
- #include "test.h"
90
-
91
-
92
-
93
- void bubble_sort(Data *df, int n) {
94
-
95
- for (int i = 0; i < n-1; i++) {
96
-
97
- for(int j = n-1; j > i; j--) {
98
-
99
- if(df[j].score_sum - df[j-1].score_sum > 0) {
100
-
101
- swap_Data(&df[j-1], &df[j]);
102
-
103
- }
104
-
105
- }
106
-
107
- }
108
-
109
- }
110
-
111
- ```
112
-
113
-
114
-
115
- ```c
116
-
117
- // read_file.c
118
-
119
- #include <stdio.h>
120
-
121
- #include <stdlib.h>
122
-
123
- #include "test.h"
124
-
125
-
126
-
127
- void read_file(char *filename, Data *df, int *n) {
128
-
129
- FILE *fp;
130
-
131
- int ret;
132
-
133
- int cnt = 0;
134
-
135
-
136
-
137
- fp = fopen(filename, "r" );
138
-
139
- if (fp == NULL) {
140
-
141
- printf( "cannot open %s\n", filename);
142
-
143
- exit(1);
144
-
145
- }
146
-
147
-
148
-
149
- while((ret = fscanf(fp, "%[^,],%d,%d,%d,%d ",
150
-
151
- df[cnt].student_no, &df[cnt].score_japanese, &df[cnt].score_math, &
152
-
153
- df[cnt].score_science, &df[cnt].score_society)) != EOF) {
154
-
155
-
156
-
157
- df[cnt].score_sum = df[cnt].score_japanese + df[cnt].score_math
158
-
159
- + df[cnt].score_science + df[cnt].score_society;
160
-
161
-
162
-
163
- cnt++;
164
-
165
- }
166
-
167
-
168
-
169
- *n = cnt;
170
-
171
- }
172
-
173
- ```
174
-
175
-
176
-
177
- ```c
178
-
179
- // show_result.c
180
-
181
- #include "test.h"
182
-
183
-
184
-
185
- void show_result(Data *df, int n) {
186
-
187
- int i;
188
-
189
-
190
-
191
- printf("番号 国語 数学 理科 社会 合計\n");
192
-
193
- printf("----------------------------------\n");
194
-
195
- for (int i = 0; i < n; i++) {
196
-
197
- printf("%s %5d%6d%6d%6d%6d\n",
198
-
199
- df[i].student_no, df[i].score_japanese, df[i].score_math,
200
-
201
- df[i].score_science, df[i].score_society, df[i].score_sum);
202
-
203
- }
204
-
205
- }
206
-
207
- ```
208
-
209
-
210
-
211
- ```c
212
-
213
- // main.c
214
-
215
- #include <stdio.h>
216
-
217
- #include <stdlib.h>
218
-
219
- #include "test.h"
220
-
221
-
222
-
223
221
  int main(void) {
224
222
 
225
223
  int n;

2

参考URLをリンクさせるよう変更

2021/09/06 03:05

投稿

cx20
cx20

スコア4648

test CHANGED
@@ -252,12 +252,12 @@
252
252
 
253
253
  ■ C言語 ヘッダファイルの書き方
254
254
 
255
- https://monozukuri-c.com/langc-headerfile/
255
+ [https://monozukuri-c.com/langc-headerfile/](https://monozukuri-c.com/langc-headerfile/)
256
256
 
257
257
  ■ 最小限の分割 - 苦しんで覚えるC言語
258
258
 
259
- https://9cguide.appspot.com/20-01.html
259
+ [https://9cguide.appspot.com/20-01.html](https://9cguide.appspot.com/20-01.html)
260
260
 
261
261
  ■ インクルードガード
262
262
 
263
- http://www.02.246.ne.jp/~torutk/cxx/file/includeguard.html
263
+ [http://www.02.246.ne.jp/~torutk/cxx/file/includeguard.html](http://www.02.246.ne.jp/~torutk/cxx/file/includeguard.html)

1

ヘッダファイルにインクルードガード(多重インクルード防止)の記述を追加しました。

2021/09/05 16:46

投稿

cx20
cx20

スコア4648

test CHANGED
@@ -6,10 +6,24 @@
6
6
 
7
7
  // test.h
8
8
 
9
+
10
+
11
+ // 多重インクルード防止
12
+
13
+ #ifndef TEST_H
14
+
15
+ #define TEST_H
16
+
17
+
18
+
19
+ // マクロ定義
20
+
9
21
  #define N 100
10
22
 
11
23
 
12
24
 
25
+ // 型定義
26
+
13
27
  typedef struct data {
14
28
 
15
29
  char student_no[128];
@@ -28,6 +42,8 @@
28
42
 
29
43
 
30
44
 
45
+ // プロトタイプ宣言
46
+
31
47
  void swap_Data(Data *x, Data *y);
32
48
 
33
49
  void bubble_sort(Data *df, int n);
@@ -38,6 +54,8 @@
38
54
 
39
55
 
40
56
 
57
+ #endif
58
+
41
59
  ```
42
60
 
43
61
 
@@ -227,3 +245,19 @@
227
245
  }
228
246
 
229
247
  ```
248
+
249
+
250
+
251
+ <参考>
252
+
253
+ ■ C言語 ヘッダファイルの書き方
254
+
255
+ https://monozukuri-c.com/langc-headerfile/
256
+
257
+ ■ 最小限の分割 - 苦しんで覚えるC言語
258
+
259
+ https://9cguide.appspot.com/20-01.html
260
+
261
+ ■ インクルードガード
262
+
263
+ http://www.02.246.ne.jp/~torutk/cxx/file/includeguard.html