0

Компилирует код без ошибок, но при открытии .ехе и первого прохода программы, не даёт ввести знак и печатает сразу строку для вывода сообщения о вводе мат.операции и ввода первого числа.

#include <stdio.h>

int main(){

while (1) {
char action;                                    
long long n1, n2, sum, diff, mult, split;      

printf(&quot;%s&quot;, &quot;input +,-,/,* :&quot;);               
scanf(&quot;%c&quot;, &amp;action);                           

printf(&quot;%s&quot;, &quot;input number 1:&quot;);                
scanf(&quot;%d&quot;, &amp;n1);                               
printf(&quot;%s&quot;, &quot;input number 2:&quot;);                
scanf(&quot;%d&quot;, &amp;n2);                               


switch (action) {                                     
    case '*':                                       
    mult = n1 * n2;                             
    printf(&quot;%s %d\n&quot;, &quot;Mult:&quot;, mult);           
    break;                                     
case '+':                                       
    sum = n1 + n2;                              
    printf(&quot;%s %d\n&quot;, &quot;Sum:&quot;, sum);             
    break;                                      
case '/':                                       
    split = n1 / n2;                            
    printf(&quot;%s %d\n&quot;, &quot;Split:&quot;, split);         
    break;                                      
case '-':                                                                      
    diff = n1 - n2;                             
    printf(&quot;%s %d\n&quot;, &quot;Diff:&quot;, diff);          
    break;                                      
}                                               

n1 = 0;                                          
n2 = 0;

}
return 0;

}

  • Значит, в scanf("%c", &action); читается что-то другое. Скорее всего, пробел или перевод строки. Делайте соответствующие проверки. Или читайте знак как строку, а не как символ. – Кирилл Малышев Sep 04 '20 at 22:33
  • Вопрос про scanf() раз пятидесятый на SO... закройте это как дубликат. – 0andriy Sep 04 '20 at 22:34

0 Answers0