[英]Can someone tell me why the math is not printing?
我正在编写一个代码,在计算重量和里程后,为用户提供其 package 的总数。 它以前可以工作,但在我做了一些小改动之后,任何重量超过 2 磅的东西都不会打印出来。 为什么是这样?
#include <stdio.h>
#include <stdlib.h>
int main(){
int weight;
int miles;
double mileCost;
int segment;
int remainder;
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("%d", &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= miles / 500;
remainder = miles % 500;
if(remainder > 0)
remainder = 1;
if(weight <= 2){
mileCost = 1.50 * (segment + remainder);
printf("The charge for your package is: %f\n", mileCost);
}
if(weight > 2 && weight >= 6){
mileCost = 3.70 * (segment + remainder);
printf("The charge for your package is: %f\n", mileCost);
}
if(weight > 6 && weight >= 10){
mileCost = 5.25 * (segment + remainder);
printf("The charge for your package is: %f\n", mileCost);
}
return 0;
}
您的上限写为大于或等于>=
而不是小于或等于<=
:
if(weight > 2 && weight >= 6){
if(weight > 6 && weight >= 10){
这应该是
if(weight > 2 && weight <= 6){
if(weight > 6 && weight <= 10){
关于:
if(weight > 2 && weight >= 6){
1) 这应该在else
之前,因此如果 weight <= 2,则甚至不会查看它
2)声明应该是:
else if(weight > 2 && weight <= 6){
注意<= 6
3) 类似的考虑存在于:
if(weight > 6 && weight >= 10){
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.