该程序计算折扣。如果我将变量priceperitem更改为int并在代码中进行了必要的更改(格式说明符等),则计算折扣的语句将给我完全不同的答案。任何人都可以解释其背后的逻辑。明白怎么了吗? ..可能与算子的关联性..或者仅仅是除法事... ???

#include<stdio.h>

main()
{
    int quantity;
    float priceperitem,expense,discount;

    printf("Price Per Item =");
    scanf("%f",&priceperitem);

    printf("How much quantity do you want =");
    scanf("%d",&quantity);

    if(quantity>1000)
    {
        discount=quantity*priceperitem*10/100;
        printf("The discount is %f\n",discount);
        expense=quantity*priceperitem - discount;
        printf("The discounted price is %f",expense);
    }

}

最佳答案

由于整数除法,将priceperitem更改为int会得到不同的结果。

更改discount=quantity*priceperitem*10/100;

discount=quantity*priceperitem*10/100f;

关于c - 计算困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16386241/

10-12 23:56