阿九。 发表于 2020-9-29 10:31:26

简单四则计算器问题

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

int main()
{
    float Num1, Num2;
    char ch;
    float result;
    bool invalid = true;

    printf("Please enter the formula:");
    scanf("%f %c %f", &Num1, ch, Num2);

    switch (ch)
    {
      case '-': Num2 = -Num2; //No Break!!!
      case '+': Num1 + Num2; break;
      case '*': Num1 * Num2; break;
      case '/':
            if (Num2 != 0)
            {
             result = Num1 / Num2; break;
            }
            else
            {
                invalid = false; break;
            }
    }
   
    if (invalid)
    {
      printf("Divisor cannot be zero!\n");
    }
    else
    {
      printf("result is : %.2f\n", result);
    }
   
    return 0;
}
上面是仿造小甲鱼的代码写的


下面是小甲鱼的
#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;
}



自己的运行后总是出错 找不出错误 请各位指点指点

巴巴鲁 发表于 2020-9-29 11:37:25

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

int main()
{
    float Num1, Num2;
    char ch;
    float result;
    bool invalid = true;

    printf("Please enter the formula:");
    scanf("%f %c %f", &Num1, &ch, &Num2); // 后面少了两个&

    switch (ch)
    {
      case '-': Num2 = -Num2; //No Break!!!
      case '+': Num1 + Num2; break;
      case '*': Num1 * Num2; break;
      case '/':
            if (Num2 != 0)
            {
             result = Num1 / Num2; break;
            }
            else
            {
                invalid = false; break;
            }
    }
   
    if (invalid == flase) //注意你invalid的变量怎么设的,什么时候改变
    {
      printf("Divisor cannot be zero!\n");
    }
    else
    {
      printf("result is : %.2f\n", result);
    }
   
    return 0;
}

sunrise085 发表于 2020-9-29 13:12:57

四处错误,帮你修改并注释了
#include <stdio.h>
#include <stdbool.h>

int main()
{
    float Num1, Num2;
    char ch;
    float result;
    bool invalid = true;

    printf("Please enter the formula:");
    scanf("%f %c %f", &Num1, &ch, &Num2);//错误1、这里后两个变量没有加取地址符

    switch (ch)
    {
      case '-': Num2 = -Num2; //No Break!!!
      case '+': result = Num1 + Num2; break;//错误2、计算结果没有赋值给result
      case '*': result = Num1 * Num2; break;//错误3、计算结果没有赋值给result
      case '/':
            if (Num2 != 0)
            {
             result = Num1 / Num2; break;
            }
            else
            {
                invalid = false; break;
            }
    }
   
    if (!invalid)//错误4、你的invalid是当除数为0的时候设为false,那么这里应该是除数为0的时候进入else
    {
      printf("Divisor cannot be zero!\n");
    }
    else
    {
      printf("result is : %.2f\n", result);
    }
   
    return 0;
}

happy含笑 发表于 2020-9-30 06:58:25

乐乐学编程 发表于 2020-10-1 13:50:34

我的系统里竟然没有 stdbool.h,下载了一个,小甲鱼的程序才运行正常

你的问题还没解决?

阿九。 发表于 2020-10-9 11:11:27

乐乐学编程 发表于 2020-10-1 13:50
我的系统里竟然没有 stdbool.h,下载了一个,小甲鱼的程序才运行正常

你的问题还没解决?

我是用 VS code
很方便 可以自定义很多插件
页: [1]
查看完整版本: 简单四则计算器问题