折扣值不能在大小写命令后计算



我的作业有点问题。这就是它的样子

#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 percentn");
discount = 25;
break;
case 'b':   printf("Your discount code is 15 percentn");
discount = 15;
break;
case 'c':   printf("Your discount code is 5 percentn");
discount = 5;
break;
default:    printf("Wrong code,Your discount is 0 percentn");
discount = 0;
break;
}
total = (price*((100-discount)/100));
printf("Your price is = %.2fn",total);
}

我有两个问题要问

  1. 我的任务是我必须输入大写和小写字母的折扣代码(只有三个代码:a, b, c),所以我怎么能把它们都放在case命令?(这里我只使用小写字母)

  2. 我已经运行了这个。但当我最后试图用它来计算时,它的折现值似乎是0。当我只打印折扣时,它正常工作。我怎样才能解决这个问题呢?

很抱歉我的英语不好,谢谢你的帮助!

会有不同的可能性。

scanf(" %c",&code);
switch(code)
{
case 'a':
case 'A':
printf("Your discount code is 25 percentn");
discount = 25;
break;

或者在开关前或开关中将输入更改为小写!

switch( code | 0x60 ) // make it to lower case
有了这个,你就不需要修改下面的代码了。

最新更新