Программа "Простейший калькулятор" на 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
