有人能告诉我为什么数学没有打印出来吗

  • 本文关键字:打印 c
  • 更新时间 :
  • 英文 :


我正在编写一个代码,在计算重量和里程后向用户提供包裹的总数。它以前是有效的,但在我做了一些小改动后,任何超过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 10lbsn");
printf("n 1-2 lbs: $1.50n 3-6 lbs: $3.70n 7-10 lbs: $5.25n ");
printf("Enter your package's weight:n");
scanf("%d", &weight);

printf("Charge by mile: n");
printf("$1.50 for every 500 milesn");
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: %fn", mileCost);
}
if(weight > 2 && weight >= 6){
mileCost = 3.70 * (segment + remainder);
printf("The charge for your package is: %fn", mileCost);
}
if(weight > 6 && weight >= 10){
mileCost = 5.25 * (segment + remainder);
printf("The charge for your package is: %fn", 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( 这应该在CCD_ 3之前,因此如果权重<=2

2( 声明应该是:

else if(weight > 2 && weight <= 6){

注意<= 6

3( 类似的考虑也存在于:

if(weight > 6 && weight >= 10){

最新更新