При вводе данные не попадают в переменную
в ответе необходимо вывести вещественное число, поэтому перевожу в double
// ввожу 23 45 +
// выводит 0 45 + и 45
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "");
int a, b;
char s;
scanf("%d%d%s", &a, &b, &s);
printf("%d %d %c\n", a, b, s);
switch (s) {
case '+': printf("%.2lf", (double) a + b); break;
case '-': printf("%.2lf", (double) a - b); break;
case '/':
switch (b) {
case 0: printf("ERROR!"); break;
default: printf("%.2lf", (double) a / b); break;
};
case '*': printf("%.2lf", (double) a * b); break;
default: printf("ERROR"); break;
};
return 0;
}
Источник: Stack Overflow на русском