#include <stdio.h>
int main(void) {
int ten[5][3], i, j;
double ave;
for (i = 0; i < 5; i++) {
printf("学生%dの3科目の得点を入力して下さい-->", i + 1);
scanf("%d %d %d", &ten[i][0], &ten[i][1], &ten[i][2]);
}
printf("\n");
printf(" 学生 国語 数学 英語 平均 評価\n");
for (i = 0; i < 5; i++) {
ave = (ten[i][0] + ten[i][1] + ten[i][2]) / 3;
if (ave >= 90) {
printf("学生%d %3d %3d %3d %3.1f S\n", i + 1, ten[i][0], ten[i][1], ten[i][2], ave);
}
if (ave >= 80 && ave < 90) {
printf("学生%d %3d %3d %3d %3.1f A\n", i + 1, ten[i][0], ten[i][1], ten[i][2], ave);
}
if (ave >= 70 && ave < 80) {
printf("学生%d %3d %3d %3d %3.1f B\n", i + 1, ten[i][0], ten[i][1], ten[i][2], ave);
}
if (ave >= 60 && ave < 70) {
printf("学生%d %3d %3d %3d %3.1f C\n", i + 1, ten[i][0], ten[i][1], ten[i][2], ave);
}
if (ave < 60) {
printf("学生%d %3d %3d %3d %3.1f E\n", i + 1, ten[i][0], ten[i][1], ten[i][2], ave);
}
}
return 0;
C言語 小数点以下の表示
C言語 小数点以下の表示
このコードだと、少数点以下がすべて0になってしまうのですが、どうしてでしょうか?
Re: C言語 小数点以下の表示
右辺において、整数 / 整数 という演算を行なっています。
このため、結果は整数になります。小数点以下を切り捨てて、なかったことにしてしまいます。
それをdouble型の変数に代入していますので、そのdouble型の変数の小数点以下は0になります。
問題を解決するには、例えば
としたり、
としたり、
としたりします。要するに、右辺の割り算で、
割られる数と割る数の少なくとも一方を浮動小数点数にします。
3.0 は、3. と書いてもかまいません。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。