Калькулятор - критика кода - C (СИ)
Формулировка задачи:
Сплошной примитив и способ реализации уверен не самый удачный, но я новичок в Си и для меня это большой шаг))
Хотелось бы посмотреть на то как вы видите решение данной задачи.
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<locale.h>
int main()
{
setlocale(LC_ALL, "Russian");
int Addition = 0,Subtraction = 1,Multiplication = 2,Division = 3; /* Тип операции */
int i,a,b,c;
int h, Yes = 0, No = 1;
float g;
m1: printf("\n Чтобы использовать операцию сложения введите 0\n");
printf("\n Чтобы использовать операцию вычитания введите 1\n");
printf("\n Чтобы использовать операцию умножения введите 2\n");
printf("\n Чтобы использовать операцию деления введите 3\n");
scanf("%d", &i);
if(i == Addition)
{
printf("Введите первое слагаемое:"); scanf("%d", &a);
printf("Введите второе слагаемое:"); scanf("%d", &b);
c = a + b;
printf("Сумма равна: %d",c);
}
if(i == Subtraction)
{
printf("Введите уменьшаемое:"); scanf("%d", &a);
printf("Введите вычитаемое:"); scanf("%d", &b);
c = a - b;
printf("Разность равна: %d",c);
}
if(i == Multiplication)
{
printf("Введите первый множитель:"); scanf("%d", &a);
printf("Введите второй множитель:"); scanf("%d", &b);
c = a * b;
printf("Произведение равно: %d",c);
}
if(i == Division)
{
printf("Введите делимое:"); scanf("%d", &a);
printf("Введите делитель:"); scanf("%d",&b);
g = a / b;
printf("Частное равно: %.2f",g);
}
printf("\n Желаете повторить операцию? Да - 0, Нет - 1\n"); scanf("%d", &h);
if(h == 0)
{
goto m1;
}
else(printf("Спасибо, что воспользовались моим калькулятором!"));
getch();
}Решение задачи: «Калькулятор - критика кода»
textual
Листинг программы
#include <stdio.h>
int main()
{
int a, b;
char oper;
scanf("%d%c%d", &a, oper, &b);
switch(oper)
{
case '+': {
printf("%d%c%d=%d\n", a, oper, b, a+b);
break; }
case '-': {
printf("%d%c%d=%d\n", a, oper, b, a-b);
break; }
case '/': {
printf("%d%c%d=%d\n", a, oper, b, a/b);
break; }
case '*': {
printf("%d%c%d=%d\n", a, oper, b, a*b);
break; }
}
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Объявляем переменные a, b типа int и oper типа char
- Считываем значения переменных a, oper, b с помощью функции scanf
- Используем оператор switch для выбора операции в зависимости от значения переменной oper
- В случае '+' выполняем операцию сложения и выводим результат на экран
- В случае '-' выполняем операцию вычитания и выводим результат на экран
- В случае '/' выполняем операцию деления и выводим результат на экран
- В случае '*' выполняем операцию умножения и выводим результат на экран
- Выполняем операцию break после каждой ветки условного оператора switch
- Программа завершается после выполнения всех ветвей условного оператора switch
- Значения переменных a, oper, b считываются в указанном порядке
- Значение переменной oper должно быть одним из символов '+', '-', '/', '*'
- Переменные a и b используются как аргументы для операций сложения, вычитания, деления и умножения
- Результат операции сохраняется в переменной a или b в зависимости от ветви условного оператора switch
- Результат операции выводится на экран с помощью функции printf
- Значение переменной oper не проверяется на равенство символу ' ' или символу новой строки '\n'
- Если значение переменной oper не равно символу ' ' или символу новой строки '\n', то программа ожидает ввода еще двух чисел
- Если значение переменной oper равно символу ' ' или символу новой строки '\n', то программа завершается
- Значение переменной oper не проверяется на равенство символу '+' или символу '-'
- Значение переменной oper не проверяется на равенство символу '/' или символу '*'