Создать программу "Консольный калькулятор" - C (СИ)
Формулировка задачи:
Создать программу консольный калькулятор которая выполняет 7 любых действий при этом пользователя должны запрашивать значения в зависимости от типу действий
Решение задачи: «Создать программу "Консольный калькулятор"»
textual
Листинг программы
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main (void)
{
setlocale(LC_ALL,"Russian");
int num1,num2,choice; // Для целочисленных операций
long int sum,multiple,subtraction; // Для суммы,вычитания,умножения
double power,division,square_root,division_mod; // Возведение в степень, извлечение корня, деление.
printf("Выберите операцию: \n");
printf("1-Сложение\n");
printf("2-Вычитание\n");
printf("3-Умножение\n");
printf("4-Деление\n");
printf("5-Возведение в степень\n");
printf("6-Извлечение квадратного корня\n");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("Сложение\n");
printf("Введите первое число: ");
scanf("%d",&num1);
printf("Введите второе число: ");
scanf("%d",&num2);
sum = num1 + num2;
printf("Сумма: %ld",sum);
break;
case 2:
printf("Вычитание\n");
printf("Введите первое число: ");
scanf("%d",&num1);
printf("Введите второе число: ");
scanf("%d",&num2);
subtraction = num1 - num2;
printf("Вычитание: %ld",subtraction);
break;
case 3:
printf("Умножение\n");
printf("Введите первое число: ");
scanf("%d",&num1);
printf("Введите второе число: ");
scanf("%d",&num2);
multiple = num1 * num2;
printf("Результат умножения: %ld\n",multiple);
break;
case 4:
printf("Деление\n");
printf("Введите первое число: ");
scanf("%d",&num1);
printf("Введите второе число: ");
scanf("%d",&num2);
if (num2 == 0)
{
printf("На ноль делить нельзя.");
break;
}
division = num1 / num2;
division_mod = num1 % num2;
printf("Результат целочисленного деления: %f\n",division);
printf("Результат деления с остатком: %f\n",division_mod);
break;
case 5:
printf("Возведение в степень\n");
printf("Введите первое число: ");
scanf("%d",&num1);
printf("Введите второе число: ");
scanf("%d",&num2);
power = pow(num1,num2);
printf("Результат возведения в степень: %f\n",power);
break;
case 6:
printf("Извлечение квадратного корня\n");
printf("Введите число: ");
scanf("%d",&num1);
square_root = sqrt(num1);
printf("Результат извлечения корня: %f\n",square_root);
break;
default:
printf("Ошибка.Попробуйте еще раз\n");
}
getch();
return 0;
}
Объяснение кода листинга программы
- Объявлены переменные:
- num1, num2, choice (типа int)
- sum, multiple, subtraction, division, division_mod, power, square_root (типа long int)
- В случае деления на ноль (division_mod) и извлечения корня из отрицательного числа (square_root) результат может быть некорректным.
- Выводится приглашение для выбора операции.
- Считывается выбранная операция в переменную choice.
- В зависимости от значения choice выполняется соответствующая операция:
- При выборе операции сложения (case 1):
- Пользователю предлагается ввести два числа.
- Результат сложения выводится на экран.
- При выборе операции вычитания (case 2):
- Пользователю предлагается ввести два числа.
- Результат вычитания выводится на экран.
- При выборе операции умножения (case 3):
- Пользователю предлагается ввести два числа.
- Результат умножения выводится на экран.
- При выборе операции деления (case 4):
- Пользователю предлагается ввести два числа.
- Если второе число равно нулю, выводится сообщение об ошибке и программа переходит к следующему циклу.
- Иначе, результат целочисленного деления и результат деления с остатком выводятся на экран.
- При выборе операции возведения в степень (case 5):
- Пользователю предлагается ввести два числа.
- Результат возведения в степень выводится на экран.
- При выборе операции извлечения корня (case 6):
- Пользователю предлагается ввести число.
- Результат извлечения корня выводится на экран.
- Если выбор операции не соответствует ни одному из перечисленных вариантов (case default), выводится сообщение об ошибке и программа переходит к следующему циклу.
- Программа завершается.