###実現したいこと
合格基準
・すべての試験科目の点数が60点以上
・試験の点数の平均値が70点以上
上の合格基準を満たす合格者の学籍番号と平均点を表示したい。
C
1/*実行結果 2試験の点数を入力してください 31 番: 70 60 80 42 番: 75 58 90 53 番: 75 80 90 64 番: 65 80 60 75 番: 60 100 60 8合格者一覧 91 番: 70.00 103 番: 81.67 115 番: 73.33 12*/
上のような結果になるようにしたい。
###問題点
下記の実行結果のように学籍番号が3までの人しか入力ができない。
C
1/*実行結果 2学籍番号1 370 60 80 4学籍番号2 575 58 90 6学籍番号3 775 80 90 8*/
どこがおかしいのかご指摘お願いいたします。
###コード
C
1/*2次元配列を用いた項目別成績の集計プログラム*/ 2#include<stdio.h> 3#define NUMBER 5 //学籍番号 4#define SUBJECT 3 //教科数 5int main(void) 6{ 7 int i,j; 8 int ssum=0; //合格者の人数 9 int tensu[NUMBER][SUBJECT+1]={0}; //項目別の点数 10 int succs[NUMBER]; //合格者のリスト 11 double avg[5]; //平均点 12 13 //入力&合否判定 14 for(i=0;i<NUMBER;i++){ 15 printf("学籍番号%d\n",i+1); 16 for(j=1;j<=SUBJECT;j++){ 17 scanf("%d",&tensu[i][j]); 18 tensu[i][0]+=tensu[i][j]; //合計 19 } 20 avg[i]=(double)tensu[succs[i]][0]/3; //平均を求める 21 if(tensu[i][0]>=60*SUBJECT && avg[i]>=70){ //すべての試験点数が60点以上かつ平均点70点以上 22 succs[ssum++]=i; 23 } 24 } 25 printf("合格者一覧\n"); 26 27 //表示 28 for(i=0;i<ssum;i++){ 29 printf("%2d番 %3d点 平均%.2f\n",succs[i]+1,tensu[succs[i]][0],avg[i]); 30 } 31 return 0; 32}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/10 02:40