2015-12-07 2 views
-1
if (!strcmp(yn, "y")) { 
    isCooked[x] = 1; 
    printf("How much %s (in grams) will you cook? ", food[choice - 1]); 
} else { 
    isCooked[x] = 0; 
    printf("How much %s (in grams) will you eat raw? ", food[choice - 1]); 
} 

scanf("%f", &grams); 
userGrams[x] = grams; 

Где я должен поместить инструкцию if-else, если я хочу управлять вводом граммов пользователя? Я хочу наложить ограничения на свою программу, так как пользователь должен вводить только minmimum 20g и максимум 200g.Куда следует поместить мой код подтверждения для ввода пользователем

+3

После прочтения ввода, но перед тем, как назначить его 'userGrams [х]' казалось бы логичным местом. –

ответ

0

Вы можете использовать while цикл и if заявление -

while(scanf("%f", &grams)==1){   // loop until scanf returns 1 
    if(grams>=20 && grams<=200){   // validate your input 
     userGrams[x] = grams;   //assign value 
     break;       //break out of loop 
    } 
    else{ 
     printf("Invalid Input !! "); 
    } 
} 
+0

Я попытался добавить оператор else, но он не зацикливается. Я попытался добавить else {printf ("Invalid input");} it does'nt loop – Alphi

+0

@Alphi Вам не нужен оператор 'else'. Зачем вы его используете? – ameyCU

+0

, когда пользователь вводит число, подобное 11, я хочу, чтобы моя программа вызывала недопустимый ввод до тех пор, пока они не введут число от 20 до 200, тогда цикл должен остановиться. – Alphi

Смежные вопросы