【发布时间】:2021-10-02 03:50:20
【问题描述】:
我的作业有问题。这就是它的样子
#include<stdio.h>
int main()
{
char code;
int price,discount;
float total;
printf("Please input price: ");
scanf("%d",&price);
printf("Please input discount code: ");
scanf(" %c",&code);
switch(code)
{
case 'a': printf("Your discount code is 25 percent\n");
discount = 25;
break;
case 'b': printf("Your discount code is 15 percent\n");
discount = 15;
break;
case 'c': printf("Your discount code is 5 percent\n");
discount = 5;
break;
default: printf("Wrong code,Your discount is 0 percent\n");
discount = 0;
break;
}
total = (price*((100-discount)/100));
printf("Your price is = %.2f\n",total);
}
我有 2 个问题要问
-
我的任务是我必须同时输入折扣代码的大写和小写字母(只有三个代码:a、b、c),那么如何将它们都放在 case 命令中? (这里我只做小写字母)
-
我已经运行了这个。但是当我最终尝试将其用于计算时,折扣值似乎为 0。当我只打印折扣时,它可以正常工作。我该如何解决?
对不起,我的英语很差,感谢您的帮助!
【问题讨论】:
-
price*((100-discount)/100)的所有部分都是整数。这将给出一个整数结果。最值得注意的是(100-discount)/100将始终为零,为了使其成为浮点计算,将所有整数文字100转换为浮点文字100.0。 -
这能回答你的问题吗? What is the behavior of integer division?
标签: c++ codeblocks division integer-division