Программа "Простейший калькулятор"
Написать программу, выполняющую над двумя числами арифметическую операцию. Числа и знак вводит пользователь. Программа должна завершаться, когда пользователь вводит символ '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