#include<stdio.h>
int main()
{
char c;
int m,z=0;
do{
printf("请点菜");
scanf("%c",&c);
switch(c)
{
case 'a':
case 'A':
printf("鱼香肉丝\n");
printf("点几分");
scanf("%d",&m);
z+=m*20;
break;
case 'b':
case 'B':
printf("宫保鸡丁\n");
printf("点几分");
scanf("%d",&m);
z+=m*20;
break;
case 'h':
case 'H':
printf("宫sdad丁\n");
printf("点几分");
scanf("%d",&m);
z+=m*20;
break;
}if(c=='e'||c=='E')
break;
}while(c!='e'||c!='E');
printf("就这些共%d钱\n",z);}
运行后出现两次请点菜???
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- cpp_learners 2021-03-22 13:25关注
正常输入没啥问题,除非你非正常输入!
在输入请点菜后面清空一下输入缓冲区应该就没啥问题了。
#include<stdio.h> int main() { char c; int m, z = 0; do { printf("请点菜"); scanf_s("%c", &c); char cc; while ((cc = getchar()) != '\n'); switch (c) { case 'a': case 'A': printf("鱼香肉丝\n"); printf("点几分"); scanf_s("%d", &m); z += m * 20; break; case 'b': case 'B': printf("宫保鸡丁\n"); printf("点几分"); scanf_s("%d", &m); z += m * 20; break; case 'h': case 'H': printf("宫sdad丁\n"); printf("点几分"); scanf_s("%d", &m); z += m * 20; break; } if (c == 'e' || c == 'E') break; } while (c != 'e' || c != 'E'); printf("就这些共%d钱\n", z); return 0; }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
- ¥15 SPSS分类模型实训题步骤
- ¥15 求解决扩散模型代码问题
- ¥15 工创大赛太阳能电动车项目零基础要学什么
- ¥20 limma多组间分析最终p值只有一个
- ¥15 nopCommerce开发问题
- ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
- ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
- ¥15 pycharm输出和导师的一样,但是标红
- ¥15 想问问富文本拿到的html怎么转成docx的