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

質問編集履歴

1

コード書き直し

2020/06/10 03:11

投稿

langhtorn
langhtorn

スコア105

title CHANGED
File without changes
body CHANGED
@@ -2,29 +2,22 @@
2
2
  合格基準はすべての試験科目の点数が60点以上かつその人の平均点が70点以上。
3
3
  合格者を表示したい。
4
4
  ###問題点
5
- 合格基準を満たしていはずの、1番さんと3番さんが表示されい。
5
+ ご指摘いただいたところ治しましたところ満たしていないはずの2番さんが表示されてしまました
6
6
  ```
7
7
  学籍番号1
8
8
  70 60 80
9
- 平均点:70.00
10
- 合計点:210
11
9
  学籍番号2
12
10
  75 58 90
13
- 平均点:74.33
14
- 合計点:223
15
11
  学籍番号3
16
12
  75 80 90
17
- 平均点:81.67
18
- 合計点:245
19
13
  学籍番号4
20
14
  65 80 60
21
- 平均点:68.33
22
- 合計点:205
23
15
  学籍番号5
24
16
  60 100 60
25
- 平均点:73.33
26
- 合計点:220
27
17
  合格者一覧
18
+ 1番 210点 平均70.00
19
+ 2番 223点 平均74.33
20
+ 3番 245点 平均81.67
28
21
  5番 220点 平均73.33
29
22
  ```
30
23
  条件分岐が間違っているとおもうのですがどう変えればいいのかわかりません。ご指摘お願いします。
@@ -40,20 +33,20 @@
40
33
  int ssum=0; //合格者の人数
41
34
  int tensu[NUMBER][SUBJECT+1]={0}; //項目別の点数
42
35
  int succs[NUMBER]; //合格者のリスト
43
- double avg[5]; //平均点
36
+ double avg[5];
44
37
  for(i=0;i<NUMBER;i++){
45
38
  printf("学籍番号%d\n",i+1);
46
39
  for(j=1;j<=SUBJECT;j++){
47
40
  //printf("項目%d:",j);
48
41
  scanf("%d",&tensu[i][j]);
49
42
  tensu[i][0]+=tensu[i][j];
50
- }
51
- avg[i]=(double)tensu[i][0]/SUBJECT;
43
+ avg[i]=(double)tensu[i][0]/SUBJECT;
52
- printf("平均点:%.2f\n",avg[i]); //デバック用
44
+ /*printf("平均点:%.2f\n",avg[i]); //デバック用
53
- printf("合計点:%2d\n",tensu[i][0]);
45
+ printf("合計点:%2d\n",tensu[i][0]);*/
54
- if(tensu[i][j]>=60 && avg[i]>=70){ //合計180点以上かつ平均70点以上
46
+ if(tensu[i][j]>=60 && avg[i]>=70){ //すべてが60点以上かつ平均70点以上
55
47
  succs[ssum++]=i;
56
48
  }
49
+ }
57
50
  }
58
51
  printf("合格者一覧\n");
59
52
  for(i=0;i<ssum;i++){