This is my code so far
#include <stdio.h>
#include <string.h>
int main() {
char size[10];
const char drinks[4][10] = {
"Coffee",
"Tea",
"Chocolate",
"Soda"
};
const char sizes[3][10] = {
"Small",
"Medium",
"Large"
};
char drinksName[10];
do {
printf("\nDrinks name: ");
scanf("%s", drinksName);
if (strcmp(drinksName, drinks[0]) != 0 || strcmp(drinksName, drinks[1]) != 0 || strcmp(drinksName, drinks[2]) != 0 || strcmp(drinksName, drinks[3]) != 0) {
printf("Not available.");
}
} while (strcmp(drinksName, drinks[0]) != 0 || strcmp(drinksName, drinks[1]) != 0 || strcmp(drinksName, drinks[2]) != 0 || strcmp(drinksName, drinks[3]) != 0);
do {
printf("\nSize: ");
scanf("%s", size);
if (strcmp(size, sizes[0]) != 0 || strcmp(size, sizes[1]) != 0 || strcmp(size, sizes[2]) != 0) {
printf("Not available.");
}
} while (strcmp(size, sizes[0]) != 0 || strcmp(size, sizes[1]) != 0 || strcmp(size, sizes[2]) != 0);
}
When I try to run my program, input always loop whereas my input is true, ex: "Coffee". Is there an error in my looping code?
do {
printf("\nDrinks name: ");
scanf("%s", drinksName);
if (strcmp(drinksName, drinks[0]) != 0 || strcmp(drinksName, drinks[1]) != 0 || strcmp(drinksName, drinks[2]) != 0 || strcmp(drinksName, drinks[3]) != 0) {
printf("Not available.");
}
} while (strcmp(drinksName, drinks[0]) != 0 || strcmp(drinksName, drinks[1]) != 0 || strcmp(drinksName, drinks[2]) != 0 || strcmp(drinksName, drinks[3]) != 0);
I'm confused why this happened.