首页 > 解决方案 > 代码不起作用,并且没有执行定向任务

问题描述

该代码是不言自明的,但我需要帮助,因为当我使用它时,它会跳过所有“If”情况并直接跳转到下一个循环。“scanf”工作正常;变量“order”也正确接收输入。如果您知道如何解决它,请告诉我!祝你有美好的一天!

#include <stdio.h>
#include <string.h>

int main(){
    int side [3]; // Fries(0), Fried Squid(1), Cheese Fries(2)
    int combo [3]; // Spicy Chicken(0), Whopper(1), Double Whopper(2)
    int drinks[3]; // Cola(0), Vanilla Shake(1), Lemonade(2)
    int amount;
    char order [20];
    int total = 0;

    for(int i = 0; i < 3; ++i){
        combo[i] = 20;
        total = total + 20;
    }
     for(int i = 0; i < 3; ++i){
        side[i] = 20;
        total = total + 20;
    }
    for(int i = 0; i < 3; ++i){
        drinks[i] = 20;
        total = total + 20;
    }

    while (total > 0){
        printf("Make your order here: \n");
        scanf("%s %d", order, &amount);
        printf("%s\n", order);
        if(order == "Fries"){
            printf("A\n");A
            if(side[0] < amount){
                printf("Your order is invalid, and you are stinky.\n");
            }
            else{
                printf("B\n");
                printf("your order is here: %s x %d", order, amount);
                total = total - amount;
            }
            printf("C\n");
        }
        printf("D\n");
    }
    return 0;
}



标签: cif-statementcomparisonc-stringsstring-literals

解决方案


我现在无法测试,但我认为您应该使用strcmpstrncmp比较字符串;运算符==将只比较指针。


推荐阅读