ПРОБЛЕМА Я набираю y
в качестве опции, и он печатает текст дважды, прежде чем запрашивать меня снова, когда он должен печатать его только один раз.
ПРАВИЛЬНЫЙ ВЫХОД (что я должен получить, но не получить):
Do you order FISH (Y/N)? y
Fish choice (K- Haddock, T- Halibut)
Do you order FISH (Y/N)? y
Fish choice (K- Haddock, T- Halibut)
Do you order FISH (Y/N)? n
Do you order CHIPS (Y/N)? n
Do you order DRINKS (Y/N)? y
Drinks choice (S- Softdrink, C- Coffee, T- Tea)
Do you order DRINKS (Y/N)? n
НЕПРАВИЛЬНЫЙ ВЫХОД (вывод, который я получаю)
Do you order FISH (Y/N)? y
Fish choice (K- Haddock, T- Halibut)
Do you order FISH (Y/N)? Fish choice (K- Haddock, T- Halibut)
Do you order FISH (Y/N)? y
Fish choice (K- Haddock, T- Halibut)
Do you order FISH (Y/N)? Fish choice (K- Haddock, T- Halibut)
Do you order FISH (Y/N)? n
Do you order CHIPS (Y/N)? Chips choice (C- Cut, R- Ring)
Do you order CHIPS (Y/N)? n
Do you order DRINKS (Y/N)? Drinks choice (S- Softdrink, C- Coffee, T- Tea):
Do you order DRINKS (Y/N)? n
RAW SOURCE (в случае, если вы хотите скомпилировать его самостоятельно и проверить, что происходит): http://pastebin.com/raw.php?i=mZ1jVrF0
ИСТОЧНИК
#include <stdio.h>
#include <string.h>
int main() {
char fishYesNo, chipsYesNo, drinksYesNo;
char *typeOfFood;
do {
typeOfFood = "fish";
printf("Do you order FISH (Y/N)? ");
scanf("%c", &fishYesNo);
if (fishYesNo != 'n') {
printf("Fish choice (K- Haddock, T- Halibut) \n");
}
else if (fishYesNo == 'n') {
typeOfFood = "chips";
}
} while ((strcmp(typeOfFood, "fish")) == 0);
do {
typeOfFood = "chips";
printf("Do you order CHIPS (Y/N)? ");
scanf("%c", &chipsYesNo);
if (chipsYesNo != 'n') {
printf("Chips choice (C- Cut, R- Ring) \n");
}
else if (chipsYesNo == 'n') {
typeOfFood = "drinks";
}
} while ((strcmp(typeOfFood, "chips")) == 0);
do {
typeOfFood = "drinks";
printf("Do you order DRINKS (Y/N)? ");
scanf("%c", &drinksYesNo);
if (drinksYesNo != 'n') {
printf("Drinks choice (S- Softdrink, C- Coffee, T- Tea):\n");
}
else if (drinksYesNo == 'n') {
typeOfFood = "fish";
}
} while ((strcmp(typeOfFood, "drinks")) == 0);
}