※ ChatGPTを利用し、要約された質問です(原文:C言語の配列を使ったプログラミングについてです。)
C言語の配列を使ったプログラミングについて
5人の数学と英語の点数の合計が入る二次元配列を用意し、5人の数学 (scores [i] [0]) と英語 (scores [i] [1]) の点数の入力する.5人の数学と英語の合計点を計算し配列に入れる (scores [i] [2]).数学と英語と合計の一覧を表示したあと,合計点の最高点と最低点を表示するプログラムを作れ.という問題で
#include<stdio.h>
int main()
{
char score[5][3];
int i, min=0,max=0;
for(i=0; i<5; i++){
printf("%d: M E?",i+1);
scanf("%d %d", &score[i][0], &score[i][1]);
score[i][2]= score[i][0]+score[i][1];
if(score[max]<score[i][2])
max=i;
if(score[min]>score[i][2])
min=i;
}
printf("id Math Eng Total\n");
for(i=0; i<5; i++){
printf("%d %d %d %d\n", i+1, score[i][0], score[i][1], score[i][2]);
}
printf("min: %d max: %d",score[min], score[max]);
}
というプログラムを作ったのですが、scanfで改行を入れていないのに、1つ目の数字を入れると2つ目の数字はなぜか改行してしまい、さらに最低点と最高点が正しく出力されませんでした。なぜでしょうか。回答よろしくお願いします。
補足
ヒントに char scores[5][3]; int i,min=0,max=0; for(i=0; i<5; i++) { scanf("%d %d", &scores[i][0], &scores[i][1]); // scores[i][2]の計算をする // scores[i][2]の最低点か? 最低点ならmin=iをする // scores[i][2]の最高点か? 最高点ならmax=iをする } for(i=0; i<5; i++) { // 表示 } と書かれているのでmin=iやmax=iは間違えていないと思います。score[max]は過去の問題を参考にしたものなので私自身よくわかっていません。すみません。