2016-08-19 4 views
1

Im пытается сделать-в то время как условие, и есть еще во время его внутри, им проблема с «вы хотите продолжить?», Его пропуская его. Есть ли что-то неправильное для моих кодов?Возможно ли иметь вложенное условное утверждение?

do { 
    printf("\nEnter the start value:"); 
    scanf("%d", &start_value); 
    printf("\nEnter the end value:"); 
    scanf("%d", &end value); 
    printf("\nEnter the interval value:"); 
    scanf("%d", &interval_value); 
    while (start_value <= end_value) { 
     printf("%d ", start_value); 
     start_value = start_value + interval_value; 
    } 
    printf("\nDo you want to continue?"); 
    scanf("%c", &answer); 
} while (answer != 'N' || answer != 'n'); 
+1

'зсап ("% С", & ответ);' -> 'scanf ("% c ", & answer);' –

+0

А? вы присваиваете значения переменным «первым» и «вторым», а затем никогда не используете их снова. – OldProgrammer

+0

ОК, ответ от Weather Vane также добавляет очень действительную точку, но часть пропусков находится в обмане. Пожалуйста, дайте мне знать, если кто-то не согласен с CV. –

ответ

3

Ваш условный оператор

while(answer != 'N' || answer != 'n'); 

всегда true. Предлагаю

while(answer != 'N' && answer != 'n'); 

(в дополнении к первому комментарию выше от @SouravGhosh, который счищает с newline влево во входном буфере)

+1

Я бы предложил также 'if (scanf («% c », & answer)! = 1) break;' – chqrlie

+0

Моя главная проблема в том, что мой «вы хотите продолжить?» было пропущено, любое предложение, что такое моя ошибка? – Holow

+0

@ Решение проблемы находится в первом комментарии справа вверху, о котором я упомянул в своем ответе. Если это неясно, [этот ответ] (http://stackoverflow.com/questions/39043617/something-is-wrong-with-the-scanfs-and-or-ifs-in-my-program-coffee-shop/ 39043835 # 39043835). Кроме того, пожалуйста, хорошо прочитайте справочную страницу для функции 'scanf'. –

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