首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果输入的数量大于1000,则应给予10 %的折扣。纠正错误

如果输入的数量大于1000,则应给予10 %的折扣。纠正错误
EN

Stack Overflow用户
提问于 2022-07-23 07:21:25
回答 2查看 35关注 0票数 -1
代码语言:javascript
运行
复制
int main(int argc, char const *argv[])
{

    int quantity, rate;
    float total, dis;
    printf("ENTER QUANTITY : \n");
    scanf("%d", &quantity);
    printf("ENTER RATE  : \n");
    scanf("%d", &rate);
    total = quantity * rate;
    dis = total - (10 / 100 * total);

    if (quantity > 1000)
    {

        printf("%.2f", dis);
    }
    else
    {
        printf("%.2f", total);

    }
return 0;
}

它没有给10 %的分离,我不能understand.it的错误只是乘以..。

例如,如果我输入1001作为数量,以25作为速率,它将给出25025,而不是minnus discoount。

EN

回答 2

Stack Overflow用户

发布于 2022-07-23 07:34:50

10 / 100是整数除法,完全是0。然后用total乘以它,结果是0.f

确保部门中有一个float

代码语言:javascript
运行
复制
dis = total - 10.f / 100 * total;

代码语言:javascript
运行
复制
dis =  total - 10 * total / 100;
//             ^^^^^^^^^^
//               float

代码语言:javascript
运行
复制
dis = total - 0.1f * total;
票数 1
EN

Stack Overflow用户

发布于 2022-07-23 08:15:38

只需将int rate;更改为float rate;即可调用浮点。

更改条目:

代码语言:javascript
运行
复制
scanf( "%.2f", &rate);

并且,简化输出:

代码语言:javascript
运行
复制
total = quantity * rate;
if( quantity > 1000 )
    total -= total/10.0; // Knock off 1/10th (10%). Could use: total *= 0.9;
printf("%.2f", total);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73088801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档