Компилирует код без ошибок, но при открытии .ехе и первого прохода программы, не даёт ввести знак и печатает сразу строку для вывода сообщения о вводе мат.операции и ввода первого числа.
#include <stdio.h>
int main(){
while (1) {
char action;
long long n1, n2, sum, diff, mult, split;
printf("%s", "input +,-,/,* :");
scanf("%c", &action);
printf("%s", "input number 1:");
scanf("%d", &n1);
printf("%s", "input number 2:");
scanf("%d", &n2);
switch (action) {
case '*':
mult = n1 * n2;
printf("%s %d\n", "Mult:", mult);
break;
case '+':
sum = n1 + n2;
printf("%s %d\n", "Sum:", sum);
break;
case '/':
split = n1 / n2;
printf("%s %d\n", "Split:", split);
break;
case '-':
diff = n1 - n2;
printf("%s %d\n", "Diff:", diff);
break;
}
n1 = 0;
n2 = 0;
}
return 0;
}
scanf("%c", &action);читается что-то другое. Скорее всего, пробел или перевод строки. Делайте соответствующие проверки. Или читайте знак как строку, а не как символ. – Кирилл Малышев Sep 04 '20 at 22:33scanf()раз пятидесятый на SO... закройте это как дубликат. – 0andriy Sep 04 '20 at 22:34