ζ眼泪诉柔情 2021-03-22 12:00 采纳率: 0%
浏览 26

运行后出现两次请点菜???

#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);}

  • 写回答

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的