鱼C论坛

 找回密码
 立即注册
查看: 933|回复: 3

[已解决]出bug了

[复制链接]
发表于 2022-2-9 14:46:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如果输入不合法的算式,就会循环打印:"请输入一个算式:",’"叮咚!输入算式不合法,请重新输入:)"
大家帮看看是什么问题
最佳答案
2022-2-9 14:59:21
试试这样:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     while (1)
  5.     {
  6.         float numa = 0, numb = 0, numc = 0;
  7.         char numd = 0;
  8.         printf("请输入一个算式:\n");
  9.         fflush(stdin); // 添加了这行
  10.         scanf("%f%c%f", &numa, &numd, &numb);
  11.         switch (numd)
  12.         {
  13.         case '+':
  14.             printf("结果为%f\n", numc = numa + numb);
  15.             break;
  16.         case '-':
  17.             printf("结果为%f\n", numc = numa - numb);
  18.             break;
  19.         case '*':
  20.             printf("结果为%f\n", numc = numa * numb);
  21.             break;
  22.         case '/':
  23.             printf("结果为%f\n", numc = numa / numb);
  24.             break;
  25.         default:
  26.             printf("叮咚!输入算式不合法,请重新输入:)");
  27.             break;
  28.         }
  29.     }
  30.     return 0;
  31. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-9 14:46:39 | 显示全部楼层
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         while(1)
  5.         {
  6.                 float numa=0,numb=0,numc=0;
  7.                 char numd=0;
  8.                 printf("请输入一个算式:\n");
  9.                 scanf("%f%c%f",&numa,&numd,&numb);
  10.                 switch(numd)
  11.                 {
  12.                         case '+':printf("结果为%f\n",numc=numa+numb);break;
  13.                         case '-':printf("结果为%f\n",numc=numa-numb);break;
  14.                         case '*':printf("结果为%f\n",numc=numa*numb);break;
  15.                         case '/':printf("结果为%f\n",numc=numa/numb);break;
  16.                         default:printf("叮咚!输入算式不合法,请重新输入:)");break;
  17.                 }
  18.         }
  19.         return 0;
  20. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-9 14:59:21 | 显示全部楼层    本楼为最佳答案   
试试这样:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     while (1)
  5.     {
  6.         float numa = 0, numb = 0, numc = 0;
  7.         char numd = 0;
  8.         printf("请输入一个算式:\n");
  9.         fflush(stdin); // 添加了这行
  10.         scanf("%f%c%f", &numa, &numd, &numb);
  11.         switch (numd)
  12.         {
  13.         case '+':
  14.             printf("结果为%f\n", numc = numa + numb);
  15.             break;
  16.         case '-':
  17.             printf("结果为%f\n", numc = numa - numb);
  18.             break;
  19.         case '*':
  20.             printf("结果为%f\n", numc = numa * numb);
  21.             break;
  22.         case '/':
  23.             printf("结果为%f\n", numc = numa / numb);
  24.             break;
  25.         default:
  26.             printf("叮咚!输入算式不合法,请重新输入:)");
  27.             break;
  28.         }
  29.     }
  30.     return 0;
  31. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-9 15:19:36 | 显示全部楼层

谢谢大佬,之前没注意
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 03:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表