vitalfish 发表于 2021-2-20 23:52:01

求助,为什么我复制了答案里面的代码,却编译有BUG了

#include <stdio.h>
#include <stdbool.h>

int main()
{
      float op1, op2;
      char ch;
      float result;
      bool invalid = false;

      printf("请输入式子:");
      scanf("%f %c %f", &op1, &ch, &op2);

      switch (ch)
      {
                case '-': op2 = -op2; // no break
                case '+': result = op1 + op2; break;
                case '*': result = op1 * op2; break;
                case '/':
                        if (op2 != 0)
                        {
                              result = op1 / op2;
                              break;
                        }
                        else
                        {
                              invalid = true;
                              break;
                        }
      }

      if (invalid)
      {
                printf("除数不能为零!\n");
      }
      else
      {
                printf("结果是:%.2f\n", result);
      }

      return 0;
}
这个是 带你学C带你飞 的答案代码(请见12课switch语句和分支嵌套),我电脑出来的结果是图片这样子,我不知道出了什么问题,请大神解答!!!

shake_a_tree@16 发表于 2021-2-21 11:05:23

输入要带空格
3 + 6
而不是
3+6

李京 发表于 2021-2-25 20:19:46

你这是什么软件
我在Dev-c++上和vs2019上都试了,没有问题

李京 发表于 2021-2-25 20:21:45

shake_a_tree@16 发表于 2021-2-21 11:05
输入要带空格
3 + 6
而不是


scanf的解析里有一句话

空白字符:该函数将读取并忽略空白字符(空白字符包含空格、回车和制表符)

所以,这个问题,输入有无空格都是一样的

vitalfish 发表于 2021-2-26 19:32:38

李京 发表于 2021-2-25 20:19
你这是什么软件
我在Dev-c++上和vs2019上都试了,没有问题

我用的就是Dev-c++
就是运行编译就会这样

李京 发表于 2021-2-26 19:35:30

本帖最后由 李京 于 2021-2-26 19:39 编辑

vitalfish 发表于 2021-2-26 19:32
我用的就是Dev-c++
就是运行编译就会这样

我就是直接复制你的代码的,一句没改
在Dev-c++上没有问题

我用Dev-c++
创建过程:
文件->新建->源代码

vitalfish 发表于 2021-2-26 19:40:38

李京 发表于 2021-2-26 19:35
我就是直接复制你的代码的,一句没改
在Dev-c++上没有问题



没事,我今天进电脑试了一下,发现已经可以了,可能那天文件除了什么问题。谢谢谢!!1{:10_275:}

李京 发表于 2021-2-26 19:43:14

vitalfish 发表于 2021-2-26 19:40
没事,我今天进电脑试了一下,发现已经可以了,可能那天文件除了什么问题。谢谢谢!!1

差点让我以为小甲鱼要身败名裂了{dog}
{:10_279:}
页: [1]
查看完整版本: 求助,为什么我复制了答案里面的代码,却编译有BUG了