3つのテストの点数を5人分入力して、すべての科目の点数が60点以上かつ平均点が70点以上の人の番号と平均点を出力するというプログラムなのですが、すべての科目の点数がx点以上かつ平均点がy点以上という条件をif文で書こうとしても配列を用意して(例えばa[]は点数の配列、配列の要素数はテストの数、yは合計点とする)a[0]>=x && a[1]>=x &&..a[n]>=x && scr>=yという冗長な条件文しか思いつきません。3つのテストでなく20つぐらいのテストでも簡潔に書くことのできる方法が知りたいです。下のコードでは上の条件のような限られた条件でしかうまく動作しません。(理由がすべての科目の点数に対しての条件文を書いていないことは分かっています)
#include<stdio.h>
#define A 5
#define B 3
int main(void) {
int scr[A][B], cl[A],t = 0;
double fig[A];
for (int i = 0; i < A; i++) {
int tmp = 0;
printf("%d番 :",i+1);
for (int k = 0; k < B; k++) {
scanf_s(" %d", &scr[i][k]);
if(scr[i][k]>=60) tmp = tmp + scr[i][k];
}
if (tmp >= 210) {
cl[t] = i+1;
fig[t] = tmp / 3.0;
t++;
}
}
printf("合格者一覧\n");
for (int i = 0; i < t; i++) {
printf("%d番 : %.2f\n", cl[i], fig[i]);
}
return 0;
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。