#include <stdio.h>
int sum(int x[], int y[], int z[]);
int main(void)
{
int eng[3];
int math[3];
int total[3];
int alltotal;
int i;
printf("3人の英語の点数を入力してください\n");
for(i=0; i<3; i++){
scanf("%d", &eng[i]);
}
printf("3人の数学の点数を入力してください\n");
for(i=0; i<3; i++){
scanf("%d", &math[i]);
}
alltotal = sum(eng, math, total); ///計算部分
printf("合計点を表示します\n");
for(i=0; i<3; i++){
printf("%d番目の人の合計点数は %d です\n", i+1, total[i]);
}
printf("3人の合計点は %d です。\n", alltotal); ///ここのalltotalの数値表示がバグります
return 0;
}
int sum(int x[], int y[], int z[]){
int i,sum;
for(i=0; i<3; i++){
z[i] = x[i] + y[i];
}
for(i=0; i<3; i++){ ///ここから下が間違っていると思われます
sum += z[i];
}
return sum;
}
totalを全部足したのをalltotalとし、int型関数のみ変更可能でmain型関数の部分をいじってはいけないです。
計算部分のint型関数が間違っていると思うのですが、何かいい方法はあるでしょうか?
出力結果
3人の英語の点数を入力してください
100
200
300
3人の数学の点数を入�してください
100
200
300
合計点を表示します
1番目の人の合計点数は 200 です
2番目の人の合計点数は 400 です
3番目の人の合計点数は 600 です
3人の合計点は 33967 です。