侧面菜单没有弹出

时间:2014-10-09 13:23:57

标签: c loops if-statement for-loop while-loop

用户选择他们的披萨后,他们无法选择他们的边订单,因为缺少边订单菜单。

循环有什么问题吗?

怀疑与循环有关。

int main()
{
int cont;
int cust;
int i;
int j;
double side=0.00;
double pizza=0.00;
double total=0.00;

for(cust=0;cust<5;cust++)
{
    printf("Welcome To Pizza Hut\n");
    printf("Pizza Menu :\n");
    printf("1=Chicken\n");
    printf("2=Meat\n\n");
    printf("Enter Pizza Flavor : ");
    scanf("%d",&i);

    if(i==1)
    {
        pizza=5.50;
    }
    if(i==2)
    {
        pizza=4.50;
    }

    while(cont==1) /*This is where the menu for side order didn't show*/
    {
        printf("Side Order Menu :\n");
        printf("1=coke\n");
        printf("2=pepsi\n");
        printf("3=bread\n");
        printf("4=salad\n\n");
        printf("Enter Side Order : ");
        scanf("%d",&j);

        if(j==1)
        {
            side=1.50;
        }
        if(j==2)
        {
            side=1.30;
        }
        if(j==3)
        {
            side=2.50;
        }
        if(j==4)
        {
            side=2.60;
        }

        printf("Add Order? (1=yes||0=no) : ");
        scanf("%d",&cont);
    }
  }

total=pizza+side;
printf("Total : %.2f",total);
cust++;
return 0;
}

4 个答案:

答案 0 :(得分:3)

这里,你没有给cont变量赋值,所以while循环不能正常工作。

答案 1 :(得分:1)

我认为有一些错误:

  1. 您应该将cont变量初始化为1
  2. 您应该在while循环中添加一个破坏机制以逃避它
  3. 您应该在while循环之后将cont变量重置为1。
  4. 这可能会起作用:

    int main()
    {
    int cont = 1;
    int cust;
    int i;
    int j;
    double side=0.00;
    double pizza=0.00;
    double total=0.00;
    
    for(cust=0;cust<5;cust++)
    {
        printf("Welcome To Pizza Hut\n");
        printf("Pizza Menu :\n");
        printf("1=Chicken\n");
        printf("2=Meat\n\n");
        printf("Enter Pizza Flavor : ");
        scanf("%d",&i);
    
        if(i==1)
        {
            pizza=5.50;
        }
        if(i==2)
        {
            pizza=4.50;
        }
    
        while( cont == 1 ) /*This is where the menu for side order didn't show*/
        {
            printf("Side Order Menu :\n");
            printf("1=coke\n");
            printf("2=pepsi\n");
            printf("3=bread\n");
            printf("4=salad\n\n");
            printf("Enter Side Order : ");
            scanf("%d",&j);
    
    
            if(j==0)
            {
                cont = 0;
                break;
            }
    
            if(j==1)
            {
                side=1.50;
            }
            if(j==2)
            {
                side=1.30;
            }
            if(j==3)
            {
                side=2.50;
            }
            if(j==4)
            {
                side=2.60;
            }
    
            printf("Add Order? (1=yes||0=no) : ");
            scanf("%d",&cont);
        }
    
        cont = 1;
      }
    
    total=pizza+side;
    printf("Total : %.2f",total);
    cust++;
    return 0;
    }
    

答案 2 :(得分:0)

如果您有int cont;行,请将其替换为int cont=1;cont将具有不确定的值,因此您永远不会进入循环以将其设置为其他任何内容。

答案 3 :(得分:0)

如果我没错,那么当你说

while(cont==1)

你说,当它等于1时,继续,而cont永远不会是1。 您还必须将变量计数初始化为0。