Ввод арифметического действия не распознается программой как верный - C (СИ)

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

По программе должно после ввода х1 и х2 быть ввод знака. Но он сразу выбивает на "printf("\nВведено неверное действие\n");" и ошибку (вложил скрин).
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(){
 
    //1.    Вычислить сумму, разность, произведение и частное двух значений х1 и х2
    float x1,x2,x;
    char d;
    system("chcp 1251 > nul");
    printf("Введите x1: ");
    scanf("%f",&x1);
    printf("Введите x2: ");
    scanf("%f",&x2);
    printf("Выберите действие ('+'-сумма,'-'-разность,'*'-произведение,'/'-частное): ");
    
    scanf("%c",&d);
 
    d=='+'?x=x1+x2:
        d=='-'?x=x1-x2:
            d=='*'?x=x1*x2:
                d=='/'?x=x1/x2:
                    printf("\nВведено неверное действие\n");
    printf("%f %c &f = %f",x1,d,x2,x);

Код к задаче: «Ввод арифметического действия не распознается программой как верный - C (СИ)»

textual
    scanf("\n%c",&d);

9   голосов, оценка 4.556 из 5


СОХРАНИТЬ ССЫЛКУ