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

質問編集履歴

1

質問内容のupdate、コードのupdate

2021/08/31 20:30

投稿

hagito
hagito

スコア4

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,12 @@
1
1
  <プログラムの目的>
2
- 20人の学生の「学生番号、名前、3科目の点数」がまとめられたファイルを読み込み、3科目の合計点数が高い順に出力する。なお、上位3位までに同点の生徒がいた場合は全員出力する(1位、2位、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<3; 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);```ここに言語を入力