質問編集履歴

1

ソート内容が表示されないのでソート1種類のみの記載に変更しました。

2020/07/09 23:10

投稿

741s
741s

スコア5

test CHANGED
File without changes
test CHANGED
@@ -18,19 +18,17 @@
18
18
 
19
19
  ```ここに言語を入力
20
20
 
21
+ ファイル読み込み:1 終了:0  :
22
+
21
- ファイル読み込み:1 終了:0  :Mami h567 60.0 80.0 70.0
23
+ Mami h567 60.0 80.0 70.0
22
24
 
23
25
  Momo h878 80.0 90.0 70.0
24
26
 
25
27
  Kinoshita h698 90.0 60.0 70.0
26
28
 
27
- ファイル読み込み:1 終了:0  :各順にソートしますか? はい:1 いいえ:2  :どのデータによってソートしますか? 名前:1 学籍番号:2 数学:3 英語:4 物理:5  :昇順と降順どちらでソートしますか? 昇順:1 降順:2  :
29
+ Koko h767 80.0 80.0 80.0
28
-
30
+
29
- 数学の得点を昇順にソートしました。
31
+ ファイル読み込み:1 終了:0  :
30
-
31
- 各順にソートしますか? はい:1 いいえ:2  :どのデータによってソートしますか? 名前:1 学籍番号:2 数学:3 英語:4 物理:5  :昇順と降順どちらでソートしますか? 昇順:1 降順:2  :
32
-
33
- 数学の得点を昇順にソートしました。
34
32
 
35
33
  ```
36
34
 
@@ -40,7 +38,7 @@
40
38
 
41
39
  ```ここに言語を入力
42
40
 
43
- *成績管理システム*/
41
+ /*成績管理システム*/
44
42
 
45
43
  #include<stdio.h>
46
44
 
@@ -90,6 +88,8 @@
90
88
 
91
89
 
92
90
 
91
+
92
+
93
93
  /*数学の得点順にソート*/
94
94
 
95
95
  void sort_by_math1(Student a[],int n) //昇順
@@ -114,60 +114,36 @@
114
114
 
115
115
 
116
116
 
117
+ /*ファイルの読み込み*/
118
+
117
- void sort_by_math2(Student a[],int n) //降順
119
+ int out_file(Student a[])
118
-
120
+
119
- {
121
+ {
122
+
120
-
123
+ FILE *fp;
124
+
121
- int i,j;
125
+ int i = 0;
122
-
123
-
124
-
125
- for(i = 0;i < n - 1;i++){
126
+
126
-
127
+
128
+
127
- for(j = n - 1;j > i;j--)
129
+ if((fp = fopen("File1","r")) == NULL)
128
-
129
- if(a[j-1].math < a[j].math)
130
+
130
-
131
- swap_Student(&a[j - 1],&a[j]);
131
+ printf("\aファイルをオープンできません\n");
132
+
133
+ else{
134
+
135
+ while(fscanf(fp,"%s %s %lf %lf %lf",a[i].name,a[i].number,&a[i].math,&a[i].eng,&a[i].phy)==5){
136
+
137
+ printf("%-10s %-10s %5.1f %5.1f %5.1f\n",a[i].name,a[i].number,a[i].math,a[i].eng,a[i].phy);
138
+
139
+ i++;
140
+
141
+ }
142
+
143
+ fclose(fp);
132
144
 
133
145
  }
134
146
 
135
- }
136
-
137
-
138
-
139
-
140
-
141
- /*ファイルの読み込み*/
142
-
143
- int out_file(Student a[])
144
-
145
- {
146
-
147
- FILE *fp;
148
-
149
- int i = 0;
150
-
151
-
152
-
153
- if((fp = fopen("File1","r")) == NULL)
154
-
155
- printf("\aファイルをオープンできません\n");
156
-
157
- else{
158
-
159
- while(fscanf(fp,"%s %s %lf %lf %lf",a[i].name,a[i].number,&a[i].math,&a[i].eng,&a[i].phy)==5){
160
-
161
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",a[i].name,a[i].number,a[i].math,a[i].eng,a[i].phy);
162
-
163
- i++;
164
-
165
- }
166
-
167
- fclose(fp);
168
-
169
- }
170
-
171
147
  return i;
172
148
 
173
149
  }
@@ -178,8 +154,6 @@
178
154
 
179
155
  {
180
156
 
181
- int a,b,c,d;
182
-
183
157
  int flag=0;
184
158
 
185
159
  int i=0;
@@ -188,13 +162,11 @@
188
162
 
189
163
  Student human[40];
190
164
 
191
-
192
-
193
165
 
194
166
 
195
167
  do{
196
168
 
197
- printf("ファイル読み込み:1 終了:0  :");
169
+ printf("ファイル読み込み:1 終了:0  :\n");
198
170
 
199
171
  scanf("%d",&flag);
200
172
 
@@ -204,163 +176,23 @@
204
176
 
205
177
  }while(flag!=0);
206
178
 
207
-
208
-
209
-
210
-
211
- do{
179
+
212
-
213
- printf("各順にソートしますか? はい:1 いいえ:2  :");
180
+
214
-
215
- scanf("%d",&b);
216
-
217
- if(a==1){
218
-
219
- printf("どのデータによってソートしますか? 名前:1 学籍番号:2 数学:3 英語:4 物理:5  :");
220
-
221
- scanf("%d",&c);
222
-
223
- printf("昇順と降順どちらでソートしますか? 昇順:1 降順:2  :");
224
-
225
- scanf("%d",&d);
226
-
227
-
228
-
229
-
230
-
231
- if(c==1&d==1){
232
-
233
- puts("\n名前を昇順にソートしました。");
234
-
235
- sort_by_name1(human,cnt);
181
+ sort_by_math1(human,cnt);
236
182
 
237
183
  for(i=0;i<cnt;i++)
238
184
 
239
185
  printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
240
186
 
187
+
188
+
189
+ return 0;
190
+
191
+
192
+
193
+
194
+
241
- }
195
+ }
242
-
243
- if(c==1&d==2){
244
-
245
- puts("\n名前を降順にソートしました。");
246
-
247
- sort_by_name2(human,cnt);
248
-
249
- for(i=0;i<cnt;i++)
250
-
251
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
252
-
253
- }
254
-
255
- if(c==2&d==1){
256
-
257
- puts("\n学籍番号を昇順にソートしました。");
258
-
259
- sort_by_number1(human,cnt);
260
-
261
- for(i=0;i<cnt;i++)
262
-
263
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
264
-
265
- }
266
-
267
- if(c==2&d==2){
268
-
269
- puts("\n学籍番号を降順にソートしました。");
270
-
271
- sort_by_number2(human,cnt);
272
-
273
- for(i=0;i<cnt;i++)
274
-
275
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
276
-
277
- }
278
-
279
- if(c==3&d==1){
280
-
281
- puts("\n数学の得点を昇順にソートしました。");
282
-
283
- sort_by_math1(human,cnt);
284
-
285
- for(i=0;i<cnt;i++)
286
-
287
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
288
-
289
- }
290
-
291
- if(c==3&d==2){
292
-
293
- puts("\n数学の得点を降順にソートしました。");
294
-
295
- sort_by_math2(human,cnt);
296
-
297
- for(i=0;i<cnt;i++)
298
-
299
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
300
-
301
- }
302
-
303
- if(c==4&d==1){
304
-
305
- puts("\n英語の得点を昇順にソートしました。");
306
-
307
- sort_by_eng1(human,cnt);
308
-
309
- for(i=0;i<cnt;i++)
310
-
311
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
312
-
313
- }
314
-
315
- if(c==4&d==2){
316
-
317
- puts("\n英語の得点を降順にソートしました。");
318
-
319
- sort_by_eng2(human,cnt);
320
-
321
- for(i=0;i<cnt;i++)
322
-
323
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
324
-
325
- }
326
-
327
- if(c==5&d==1){
328
-
329
- puts("\n物理の得点を昇順にソートしました。");
330
-
331
- sort_by_phy1(human,cnt);
332
-
333
- for(i=0;i<cnt;i++)
334
-
335
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
336
-
337
- }
338
-
339
- if(c==5&d==2){
340
-
341
- puts("\n物理の得点を降順にソートしました。");
342
-
343
- sort_by_phy2(human,cnt);
344
-
345
- for(i=0;i<cnt;i++)
346
-
347
- printf("%-10s %-10s %5.1f %5.1f %5.1f\n",human[i].name,human[i].number,human[i].math,human[i].eng,human[i].phy);
348
-
349
- }
350
-
351
- }
352
-
353
-
354
-
355
-
356
-
357
- }while(b!=2);
358
-
359
- return 0;
360
-
361
- }
362
-
363
-
364
196
 
365
197
  ```
366
198