Создать простейший калькулятор - C (СИ)
Формулировка задачи:
Нужен простой калькулятор. чтобы складывал, вычитал, делил и умножал 2 числа.
Пожалуйста, кому не лень. Помогите
Решение задачи: «Создать простейший калькулятор»
textual
Листинг программы
#include <stdio.h>
int main(void) {
char act[2];
double op1, op2;
while ( printf("> ") && scanf("%lf %1s %lf", &op1, act, &op2) == 3 ) {
switch ( *act ) {
case '+' :
printf("= %f\n", op1 + op2);
break;
case '-' :
printf("= %f\n", op1 - op2);
break;
case '*' :
printf("= %f\n", op1 * op2);
break;
case '/' :
if ( op2 == 0.0 )
fprintf(stderr, "Error! Dividion by zero.\n");
else
printf("= %f\n", op1 / op2);
break;
default :
fprintf(stderr, "Unknown operator: %c\n", *act);
break;
}
}
return 0;
}
Объяснение кода листинга программы
- В начале программы подключается стандартная библиотека ввода-вывода (stdio.h).
- Затем определена точка входа в программу (main).
- Создаются три переменные:
- op1 типа double для хранения первого операнда;
- op2 типа double для хранения второго операнда;
- act типа char[2] для хранения символа операции.
- Далее следует цикл while, который выполняется до тех пор, пока пользователь не введет символ 'q' или не возникнет ошибка при вводе.
- Внутри цикла while происходит считывание трех значений с помощью функции scanf:
- первое значение считывается в переменную op1;
- второе значение считывается в переменную act;
- третье значение считывается в переменную op2.
- Затем происходит проверка на количество считанных значений: если было считано три значения, то выполняется операция по переменной act с помощью оператора switch.
- При выборе определенного оператора происходит выполнение соответствующей операции и выводится результат.
- Если второе значение было некорректным (не являлось оператором), то выводится сообщение об ошибке.
- Если введенный операнд был делением на ноль, то выводится сообщение об ошибке.
- По завершении цикла while программа возвращает 0, что означает успешное завершение работы.