我正在一门编程课上,我们刚刚从Python转到了C。我对它有点困难,因为C似乎不像Python那样轻松地执行数学运算,或者在处理C中的数学时我可能遗漏了些东西。
我的作业要求编写一个程序,收集用户车辆每加仑可行驶里程、每加仑油费以及他们每月行驶的里程数。然后程序会告诉他们本月可以预期的油费支出。我的当前代码如下:
#include <stdio.h>
int main () {
int mpg, miles;
double gas_price;
printf("How many miles per gallon does your car get?\n");
scanf("%d", &mpg);
printf("What is the price of gasoline per gallon?\n");
scanf("%lf", &gas_price);
printf("How many miles do you drive in a month?\n");
scanf("%d", &miles);
printf("The cost of gas this month is $%.2lf\n", miles / mpg * gas_price);
printf("%d %d %d", mpg, gas_price, miles);
return 0;
}
当我使用24作为“mpg”的值,3.00作为“gas_price”的值,以及1000英里的行驶距离运行程序时,总费用为123美元。这是不正确的,比实际价格少约两美元。当你使用((1000 / 24) * 3.00)时,应该得到125美元。我添加了一个字符串来打印出所有的数值,查看C语言在第23行的公式中使用的内容,尽管“mpg”和“gas_price”是正确的,“miles”显示的值为1,074,266,112。我知道这里一定有错误,因为这将使结果偏差远超过2美元,但我不能不认为它与此有关。
对于问题的长度我深感歉意,但我想尽可能具体,并且我完全不知道为什么C语言读取它如此奇怪。