0
出力は小数点以下の値であるはずです。私はそれを通過し、それが正しいようだが、出力はゼロとして出てくる。たとえば、それぞれ120,230,20および15を入力した場合、0.017が吐き出されるはずですが、それでもゼロになります。なぜ私のコードは0を出力していますか?
#include <stdio.h>
#define WALK_CAL 5
#define STAND_CAL 2
#define DRINK_CAL 20
#define FOOD_CAL 40
#define CALS_PER_POUND 3500
int main(void) {
int walking_min, standing_min;
int drinking_min, eating_min;
float end_calories;
//Get User Input
printf("How long were you walking (in minutes) ?\n");
scanf("%d", &walking_min);
printf("How long were you standing (in minutes) ?\n");
scanf("%d", &standing_min);
printf("How long were you drinking (in minutes) ?\n");
scanf("%d", &drinking_min);
printf("How long were you eating (in minutes) ?\n");
scanf("%d", &eating_min);
//Evaluate User Input
end_calories = (((WALK_CAL*walking_min) + (STAND_CAL*standing_min) - (DRINK_CAL*drinking_min) - (FOOD_CAL*eating_min))/CALS_PER_POUND);
//Output Final Value
printf("You lost %.3f pounds today!\n", end_calories);
return 0;
}
ありがとうございます!
整数除算を=浮動小数点数の除算。 – WhozCraig
2つの整数を除算すると、整数(ゼロに丸めます)が得られます。この整数を浮動小数点に代入すると、これを魔法のように変更することはありません。 –