pilipala6688 2020-04-17 19:17 采纳率: 50%
浏览 351
已结题

C语言点菜小程序的问题

这是我们老师留的一道上机题:
1.应用多分支选择结构、循环结构及已学的所有C语言相关知识,编写“点菜器”程序,功能要求如下:
1)在黑屏终端下,输入字母A或a,输出菜名***及单价,并询问点几份,由用户输入份数;
2)程序运行不结束,输入字母B或b,输出另一菜名***及单价,余下功能和1)类似;
3)重复2)的功能,每次菜名及单价都不一样。直至用户在黑屏终端下输入E或e,输出“就这些”并输出总价。

我写了如下代码,写完以后出现以下问题
1.循环是会出现两句 请输入您想点的菜品的序号
2.无法实现输入E或e是输出价格

我希得到出现问题的原因和修改意见或修改后的代码。
谢谢

#include<stdio.h>
int main()
{
    char code;
    int number,price=0;
    int price1=18;//菜品一:醋溜土豆丝
    int price2=30;//菜品二:爆炒羊肉 
    int price3=20; //菜品三:西红柿炒鸡蛋 
do{
    printf("请输入您想点的菜品的序号:");
    scanf("%c",&code); 
    switch(code)
    {
        case 'A':
        case 'a':
            printf("您点的是醋溜土豆丝,单价18元。\n请输入您需要的份数:");
            scanf("%d",&number);
            price+=price1*number;
            break;
        case 'B':
        case 'b':
            printf("您点的是爆炒羊肉,单价30元。\n请输入您需要的份数:");
            scanf("%d",&number);
            price+=price2*number;
            break;
        case 'C':
        case 'c':
            printf("您点的是西红柿炒鸡蛋,单价20元。\n请输入您需要的份数:");
            scanf("%d",&number);
            price+=price3*number;
            break;
    }
    if(code=='E'||code=='e')
    break;

} while (code!='E'||code!='e');

printf("就这些。一共%d元。",price);

return 0;
}
  • 写回答

2条回答 默认 最新

  • 雨下,听风 2020-04-19 14:18
    关注

    #include
    int main()
    {
    char code;
    int number,price=0;
    int price1=18;//菜品一:醋溜土豆丝
    int price2=30;//菜品二:爆炒羊肉
    int price3=20; //菜品三:西红柿炒鸡蛋
    do{
    printf("请输入您想点的菜品的序号:");
    fflush(stdin);
    scanf("%c",&code);
    switch(code)
    {
    case 'A':
    case 'a':
    printf("您点的是醋溜土豆丝,单价18元。\n请输入您需要的份数:");
    scanf("%d",&number);
    price+=price1*number;
    break;
    case 'B':
    case 'b':
    printf("您点的是爆炒羊肉,单价30元。\n请输入您需要的份数:");
    scanf("%d",&number);
    price+=price2*number;
    break;
    case 'C':
    case 'c':
    printf("您点的是西红柿炒鸡蛋,单价20元。\n请输入您需要的份数:");
    scanf("%d",&number);
    price+=price3*number;
    break;
    }
    if(code=='E'||code=='e')
    break;

    } while (code!='E'||code!='e');
    
    printf("就这些。一共%d元。",price);
    
    return 0;
    

    }
    运行结果:
    请输入您想点的菜品的序号:A
    您点的是醋溜土豆丝,单价18元。
    请输入您需要的份数:1
    请输入您想点的菜品的序号:b
    您点的是爆炒羊肉,单价30元。
    请输入您需要的份数:2
    请输入您想点的菜品的序号:C
    您点的是西红柿炒鸡蛋,单价20元。
    请输入您需要的份数:3
    请输入您想点的菜品的序号:E
    就这些。一共138元。
    如帮助到您,请采纳!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月31日
  • 已采纳回答 1月31日

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办