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

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

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

#include <stdio.h>
 
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");
   }
}

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

Знак: 7
Неверно указан знак операции
Знак: 3
Неверно указан знак операции
Знак: +
x=4
y=5
9.00
Знак: /
x=0
y=0
Деление на ноль!
Знак: -
x=-34.4
y=-2
-32.40
Знак: 0

Решение задач на языке C




Все разделы сайта