c - 数学没有正确输出
问题描述
我仍在学习编码并编写此代码以在计算重量和距离后得到总数。有人能告诉我为什么数学不起作用吗?
示例:当我输入 5 作为体重和 1500 英里而不是返回 8.20 时,我得到 3.50。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
double weight,mileCost;
int miles, segment, remainder, stop = 1;
while(stop == 1){
printf("Charge by weight:(We don't tale packages over 10lbs\n");
printf("\n 1-2 lbs: $1.50\n 3-6 lbs: $3.70\n 7-10 lbs: $5.25\n ");
printf("Enter your package's weight:\n");
scanf("%f", &weight);
printf("Charge by mile: \n");
printf("$1.50 for every 500 miles\n");
printf("Enter the total miles for your package:\n");
scanf("%d", &miles);
if(miles == 0 || weight == 0 || weight > 10){
printf("Invalid entry! Try Again.");
}
segment= ceil((double) miles / 500);
remainder = miles % 500;
if(remainder > 0)
remainder = 1;
if(weight <= 2){
mileCost = 1.50 * (segment + remainder);
printf("The shipping charge for your package is: %f\n", mileCost);
}
else if(weight > 2 && weight <= 6){
mileCost = 3.70 * (segment + remainder);
printf("The shipping charge for your package is: %f\n", mileCost);
}
if(weight > 6 && weight <= 10){
mileCost = 5.25 * (segment + remainder);
printf("The shipping charge for your package is: %f\n", mileCost);
}
system("pause");
printf("Would you like to ship another package?\n Enter 1 to continue or 0 to stop. \n");
scanf("%d", &stop);
if(stop == 0){
printf("Thank you for your business! \n");
}
}
return 0;
}
解决方案
更改double weight, mileCost;
为float weight, mileCost;
将使其工作,因为您正在从stdin
使用scanf("%f", &weight)
(对于浮点数)而不是scanf("%lf", &weight)
(对于双精度数)读取变量。
我仍然对你为什么这样做感到困惑:
if(remainder > 0)
remainder = 1;
不会ceil()
已经处理:
segment = ceil((double) miles / 500);
另外,根据您提供的公式,输入weight=5
和miles=1500
应该输出11.1
。
推荐阅读
- php - 不幸的是 PHP file_get_contents 不工作
- mono - “应用程序”类型是在未引用的程序集中定义的。gtk-sharp,版本=2.12
- c# - 如何根据特定模式创建信用卡 PAN 生成器?
- sql-server - 附加或分离数据库的 T-SQL 授予登录
- postgresql - 如何获得外键模型以及模型。我尝试使用包含
- excel - 如何改进此代码以不删除空单元格,而只是忽略它们?
- php - Laravel Nova 如何创建自定义过滤器
- php - str_replace vs explode 删除字符串中间的空格
- alm - 如何使用任何自动化 API 将测试用例从 ALM 迁移到 MTM 2017
- mysql - 如何对用户本身和其他外部手段隐藏 MySQL 数据库凭据?