Почему пробел все портит? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
 
 int main (){
 
    float var1,var2,result;
    char choice;
    do{
    printf("Enter your first number :");
    scanf(" %f", &var1);
    printf("Enter your second number :");
    scanf(" %f", &var2);
 
    result = var1 * var2;
    printf(" %.2f times %.2f equals to %.2f.\n\n",var1,var2,result );
 
    printf("do you want to enter another pair of numbers \n");
    printf(" to multiply (Y/N): ");
    scanf("%c", &choice);
 
    if(choice == 'n'){
        choice = 'N';
    }
    }while(choice != 'N');
    return 0;
 
}
Output тут следующий Enter your first number (number) Enter your second number (Number) Потом умножение, и предложение ввести еще раз Но суть в том, что если оставить код как есть, то после фразы To multiply (Y/N) будет выведено предложение Enter your first number.А логика такая, что это должно появиться, только после вводы символа, кроме n. Я разобрался, почему так. Нужен пробел, перед scanf("Пробел%с",%choice). Может кто-нибудь объяснить логику С? Почему один пробел в ключевом месте, портит всю картину?

Решение задачи: «Почему пробел все портит?»

textual
Листинг программы
scanf(" %f", &var2);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы