繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM