星辰sxc 2022-10-13 21:30 采纳率: 85.7%
浏览 14
已结题

C语言订购代码错误,如何修改


#include<stdio.h>
int main(void)
{
    char x;                     //选项
    float yx;                   //洋藓临时重量
    float tczh;                 //甜菜临时重量
    float hlbzh;                //胡萝卜临时重量
    float yxz;                  //洋藓总重量
    float tcz;                  //甜菜总重量
    float hlbz;                 //胡萝卜总重量

    while (x != 'q')
    {
        printf("请选择你订购什么东西\n");
        printf("a) 杨藓             ");
        printf("b) 甜菜\n");
        printf("c) 胡萝卜           ");
        printf("q) 退出订购\n");
        scanf("%c",&x);

        switch (x)
        {
        case 'a':
            printf("你要订购多少磅:");
            scanf("%f",&yx);
            yxz += yx;
            break;

        case 'b':
            printf("你要订购多少磅:");
            scanf("%f",&tczh);
            tcz += tczh;
            break;

        case 'c':
            printf("你要订购多少磅:");
            scanf("%f",&hlbzh);
            hlbz += hlbzh;
            break;

        case 'q':
            break;
        
        default:
            printf("没有此选项,请重新输入\n");
            break;
        }
    }

    return 0;
}

为什么这段订购代码(一部分)我在调试之后发现第二次它就自动读取了换行,如何解决,如下图

img

  • 写回答

1条回答 默认 最新

  • lzl2040 人工智能领域新星创作者 2022-10-13 21:37
    关注

    scanf后面加一个getchar()就行

     
    #include<stdio.h>
    int main(void)
    {
        char x;                     //选项
        float yx;                   //洋藓临时重量
        float tczh;                 //甜菜临时重量
        float hlbzh;                //胡萝卜临时重量
        float yxz;                  //洋藓总重量
        float tcz;                  //甜菜总重量
        float hlbz;                 //胡萝卜总重量
     
        while (x != 'q')
        {
            printf("请选择你订购什么东西\n");
            printf("a) 杨藓             ");
            printf("b) 甜菜\n");
            printf("c) 胡萝卜           ");
            printf("q) 退出订购\n");
            scanf("%c",&x);
            getchar(); 
     
            switch (x)
            {
            case 'a':
                printf("你要订购多少磅:");
                scanf("%f",&yx);
                yxz += yx;
                break;
     
            case 'b':
                printf("你要订购多少磅:");
                scanf("%f",&tczh);
                tcz += tczh;
                break;
     
            case 'c':
                printf("你要订购多少磅:");
                scanf("%f",&hlbzh);
                hlbz += hlbzh;
                break;
     
            case 'q':
                break;
            
            default:
                printf("没有此选项,请重新输入\n");
                break;
            }
        }
     
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月23日
  • 已采纳回答 10月15日
  • 创建了问题 10月13日

悬赏问题

  • ¥15 关于大棚监测的pcb板设计
  • ¥20 sim800c模块 at指令及平台
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计