猿友 2023-09-27 18:28 采纳率: 66.7%
浏览 5
已结题

c语言编写简单计算器时的bug


#include <stdio.h>

int input_y_n()
{
    char check;
    while (1)
    {
        printf("请输入y,Y;n,N:");
        if (scanf(" %c", &check) == 1)
        {
            if (check == 'y' || check == 'Y')
            {
                return 1;
            }
            else if (check == 'n' || check == 'N')
            {
                return 0;
            }
            else
            {
                continue;
            }
        }
        else
        {
            continue;
        }
    }
}
int main()
{
    float num1, num2, result;
    char op;
    while (1)
    {
        printf("请依次输入操作数1 操作符 操作数2:");
        if (scanf("%f %c %f", &num1, &op, &num2) == 3)
        {
            switch (op)
            {
            case '+':
                printf("%.2f + %.2f = %.2f\n", num1, num2, num1 + num2);
                break;
            case '-':
                printf("%.2f + %.2f = %.2f\n", num1, num2, num1 - num2);
                break;
            case '*':
                printf("%.2f + %.2f = %.2f\n", num1, num2, num1 * num2);
                break;
            case '/':
                printf("%.2f + %.2f = %.2f\n", num1, num2, num1 + num2);
                break;
            default:
                printf("error\n");
                break;
            }
        }
        else
        {
            printf("error\n");
        }
        if (!input_y_n())
        {
            break;
        }
    }
}

当我输入类似a+b这样的错误输入时为什么多次执行了int input_y_n()函数

img

  • 写回答

1条回答 默认 最新

  • 以免我忘记 2023-09-27 18:52
    关注

    加上 fflush(stdin); 清空缓存

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥20 关于游戏c++语言代码问题
  • ¥15 如何制作永久二维码,最好是微信也可以扫开的。(相关搜索:管理系统)
  • ¥15 delphi indy cookie 有效期
  • ¥15 labelme打不开怎么办
  • ¥35 按照图片上的两个任务要求,用keil5写出运行代码,并在proteus上仿真成功,🙏
  • ¥15 免费的电脑视频剪辑类软件如何盈利
  • ¥30 MPI读入tif文件并将文件路径分配给各进程时遇到问题
  • ¥15 pycharm中导入模块出错
  • ¥20 Ros2 moveit2 Windows环境配置,有偿,价格可商议。
  • ¥15 有关“完美的代价”问题的代码漏洞