Программа на С

Программа на С
Помогите, пожалуйста, определить где ошибка.
Задание: Напишите программу, запрашивающую с клавиатуры два вещественных числа и один из знаков операций +, -*,/ и выводящую на экран результат соответствующего арифметического действия над этими числами.
Вот программа:
#include
#include
#include
#include
#include

int main(void)
{
setlocale(LC_ALL,"Russian");
float x, y, z;
char c;
printf("Введите два вечественных числа: n");
printf("Первое: ");
scanf("%f",&x);
printf("Второе: ");
scanf("%f",&y);
printf("Введите знак: ");
scanf("%c", &c);
switch (c)
{
case '+': z = x + y; break;
case '-': z = x - y; break;
case '*': z = x * y; break;
case '/': z = x / y; break;
}

printf("%3.1f", z);
_getch();
return 0;
}

  • Удвой scanf("%c", &c);
  • УЙДИ НАЗРЕНШЖИШжмнршдыпигыш
  • Что за ошибку выдает?
  • Да вроде все верно. Где ошибка происходит?
  • #include
    #include
    int main(void) {
    float x, y, z, eps = 1e-7f;
    char c;
    short flag = 0;
    setlocale(LC_ALL, "Russian");
    printf("Введите два вечественных числа: nПервое: ");
    scanf_s("%f", &x);
    printf("Второе: ");
    scanf_s("%f", &y);
    printf("Введите знак: ");
    fflush(stdin);
    scanf_s("%c", &c);
    switch (c) {
    case '+': z = x + y; break;
    case '-': z = x - y; break;
    case '*': z = x * y; break;
    case '/':
    if (y > eps) z = x / y;
    else flag = 1;
    break;
    default: flag = 2;
    }
    if (flag == 0) printf("%3.2f", z);
    else if (flag == 1) printf("aПопытка деления на ноль! ");
    else printf("aНеизвестная арифметическая операция: %c", c);
    fflush(stdin);
    getchar();
    return 0;
    }