#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);}
正常输入没啥问题,除非你非正常输入!
在输入请点菜后面清空一下输入缓冲区应该就没啥问题了。
#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;
}