微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

case 命令后无法计算折扣值

如何解决case 命令后无法计算折扣值

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

#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);
}

我有两个问题要问

  1. 我的任务是我必须同时输入大写和小写字母的折扣代码(只有三个代码:a、b、c),那么我如何将它们都放在 case 命令中? (这里我只做小写字母)

  2. 我已经运行了这个。但是当我最终尝试使用它进行计算时,折扣值似乎为0。当我只打印折扣时,它可以正常工作。我该如何解决

抱歉我的英语不好,感谢您的帮助!

解决方法

会有不同的可能性。

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

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

switch( code | 0x60 ) // make it to lower case

有了这个,您不必更改以下代码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。