当我正确执行语法时,为什么我的代码输出为0

问题描述 投票:0回答:2

我认为问题在嵌套之前就开始了,因为在代码末尾它应该输出sales = price * sold的结果,但它也会输出0

#include<stdio.h>
main() {
    int num, price, sold, sales;
    float compercent, commision;
    printf("Enter Unit Price: ");
    scanf("%d", &price);
    printf("Enter Quantity Sold: ");
    scanf("%d", &sold);
    sales = price * sold;

    if (sales >= 50000) {
        compercent = 0.1;
    }
    else if (sales >= 40000 && sales < 50000) {
        compercent = 0.08;
    }
    else if (sales >= 30000 && sales < 40000) {
        compercent = 0.06;
    }
    else if (sales >= 20000 && sales < 30000) {
        compercent = 0.04;
    }
    else if (sales >= 10000 && sales < 20000) {
        compercent = 0.02;
    }
    else if (sales >= 5000 && sales < 10000) {
        compercent = 0.01;
    }
    else if(sales<5000){
        compercent = 0;
    }
    commision = sales * compercent;
    printf("Sales: ");
    printf("sales = %f", &sales);
    printf("Commision: ");
    printf("%f", &commision);
}
c++ stdio nested-if
2个回答
0
投票

sales是一个整数变量,因此乘法完成。整数算术。尝试commision = static_cast<double> (sales) * compercent或只是将sales声明为双精度。


0
投票

[使用prinf时,您无需提供变量作为参考。该函数需要一个整数或浮点数,而不是指针。

© www.soinside.com 2019 - 2024. All rights reserved.