Программа "Простейший калькулятор" на C

Задача. Написать программу, выполняющую над двумя числами арифметическую операцию (сложение, вычитание, умножение или деление). Числа и знак вводит пользователь. Программа должна завершаться, когда пользователь вводит символ '0' в качестве знака операции. Иначе, запрашивать новые числа и знак операции. Предусмотреть сообщения о невозможности деления на ноль и неверно введенном знаке операции.

Пояснение. В языке программирования C существует проблема с вводом данных через функцию scanf() (подробнее о функции в уроке "Форматированный ввод данных"). Когда нажимается Enter, то символ перехода на новую строку сохраняется и присваивается переменной при следующем вызове scanf(). Поэтому от лишнего символа избавляются, не присваивая его никакой переменной (для этого в формате пишется знак *).

#include <stdio.h>

int main() {
   float x, y;
   char sign = ;

   while (sign != '0') {
      printf("Знак: ");
      scanf("%c%*c", &sign);

      if (sign == '0') break;

      if (sign == '+' || sign == '-' || sign == '*' || sign == '/') {
         printf("x = ");
         scanf("%f%*c", &x);
         printf("y = ");
         scanf("%f%*c", &y);
         switch (sign) {
            case '+':
               printf("%.2f\n", x + y);
               break;
            case '-':
               printf("%.2f\n", x - y);
               break;
            case '*':
               printf("%.2f\n", x * y);
               break;
            case '/':
               if (y != 0)
                  printf("%.2f\n", x / y);
               else
                  printf("Деление на ноль!\n");
         }
      }
      else
         printf("Неверно указан знак операции\n");
   }
}

Пример выполнения программы:

Знак: =
Неверно указан знак операции
Знак: -
x = 9.345
y = -7.624
16.97
Знак: /
x = 8
y = 0
Деление на ноль!
Знак: /
x = -4.8
y = 1.5
-3.20
Знак: 0