質問編集履歴
1
質問内容のupdate、コードのupdate
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
<プログラムの目的>
|
2
|
-
20人の学生の「学生番号、名前、3科目の点数」がまとめられたファイルを読み込み、3科目の合計点数が高い
|
2
|
+
20人の学生の「学生番号、名前、3科目の点数」がまとめられたファイルを読み込み、3科目の合計点数が高い上位3人を出力する。なお、上位3位までに同点の生徒がいた場合は全員出力する。
|
3
3
|
|
4
|
+
1位、2位、3位が複数いた場合は全員出力。1位が一人、2位が一人、3位が二人の場合は、四人出力。
|
5
|
+
|
6
|
+
1位が2人、2位が0、3位が2人の場合は、四人出力。
|
7
|
+
|
8
|
+
1位が4人の時は、四人出力。
|
9
|
+
|
4
10
|
ファイルは以下の形式。
|
5
11
|
1001 name 49 50 23
|
6
12
|
1002 name 22 79 43
|
@@ -9,6 +15,7 @@
|
|
9
15
|
<質問内容>
|
10
16
|
3科目の合計点数が高い順に出力まではできました。ただ、同点の生徒がいた場合の処理がわからないです。どうすれば同じ点数の学生を全員出力できるのでしょうか。
|
11
17
|
|
18
|
+
|
12
19
|
```c
|
13
20
|
#include <stdio.h>
|
14
21
|
#include <stdlib.h>
|
@@ -80,8 +87,13 @@
|
|
80
87
|
|
81
88
|
bubble_sort(20, s);
|
82
89
|
|
90
|
+
//これだと
|
91
|
+
int z = 3;
|
83
|
-
for (i=0; i<
|
92
|
+
for (i=0; i<z; i++) {
|
84
93
|
print_students(s[i]);
|
94
|
+
if (s[i].sum == s[i+1].sum) {
|
95
|
+
z++;
|
96
|
+
}
|
85
97
|
}
|
86
98
|
|
87
99
|
fclose(fp);```ここに言語を入力
|