我要做大做强 发表于 2019-9-5 20:05:51

switch不知道哪里用错了

#include<stdio.h>
int main()
{
        float result ,one ,two;
        char ch;
        printf("请输入式子:");
        scanf("%.2f %c %.2f",&one,&ch,&two);
        switch(ch)
        {
                case '-':two = -two;
                case '+':result = one + two;break;
                case '*':result = one * two;break;
                case '/': if(two != 0)
                          {
                                result = one / two ;break;          
                          }
                          else {
                                  printf("很遗憾,除数不能为零!\n");break;
                          }

        }
printf("结果是:%.2f\n", result);
        return 0;
}
不管输入什么式子都等于0.00

superbe 发表于 2019-9-6 11:33:25

本帖最后由 superbe 于 2019-9-6 11:35 编辑

scanf("%.2f %c %.2f",&one,&ch,&two);    //不能指定输入小数位数,这行改成如下:

scanf("%f %c %f",&one,&ch,&two);

bin554385863 发表于 2019-9-6 11:41:18

scanf("%.2f %c %.2f",&one,&ch,&two);
      switch(ch)
      {
                case '-':two = -two;break哪去了
                case '+':result = one + two;break;
                case '*':result = one * two;break;
                case '/': if(two != 0)
另外,scanf没有指定小数位数这一说

员理管帅最 发表于 2019-9-6 21:06:41

兄弟,学你的,哈哈哈哈
#include<stdio.h>
int main()
{
      float result ,one ,two;
      char ch;
      printf("请输入式子:");
      scanf("%f %c %f",&one,&ch,&two);
      switch(ch)
      {
                case '-':two = -two;
                case '+':result = one + two;break;   
                case '/': if(two!=0)
                        {
                              two = 1/ two ;      
                        }
                        else {
                                  printf("很遗憾,除数不能为零!\n");break;
                        }
               case '*':result = one * two;break;
      }
printf("结果是:%.2f\n", result);
      return 0;
}

AmosAlbert 发表于 2019-9-6 22:31:23

bin554385863 发表于 2019-9-6 11:41
scanf("%.2f %c %.2f",&one,&ch,&two);
      switch(ch)
      {


swit只能选择int型数据吖

bin554385863 发表于 2019-9-6 23:14:25

AmosAlbert 发表于 2019-9-6 22:31
swit只能选择int型数据吖

字符的表现形式就是整形

一个账号 发表于 2019-9-8 08:35:56

switch的case只能判断整数......

AmosAlbert 发表于 2019-9-24 23:18:34

bin554385863 发表于 2019-9-6 23:14
字符的表现形式就是整形

???????

bin554385863 发表于 2019-9-25 12:37:24

AmosAlbert 发表于 2019-9-24 23:18
???????

电脑会把字符转换成ASCII码存储起来

AmosAlbert 发表于 2019-10-12 19:41:50

bin554385863 发表于 2019-9-25 12:37
电脑会把字符转换成ASCII码存储起来

oh,讲明白了
页: [1]
查看完整版本: switch不知道哪里用错了