Калькулятор - простые вычисления до тех пор, пока пользователь не нажмет "=" - C (СИ)
Формулировка задачи:
Задание: вводим число, действие и число. И так до тех пор, пока не введём знак "=", когда он, то сразу же выводится значение, что получилось.
Например, 2+3*4+6=... - сначала подсчитывается сумма 2+3, затем (не учитывая приоритетов действий) умножаем эту сумму на 4 и т.д.
То, что написала, не изменяет переменную a почему-то
Помогиииите, пожалуйста!
#include <stdio.h> #include <conio.h> #include <locale.h> int main() { double a,b=0; char ch; setlocale(LC_ALL,"russian"); printf("Введите число \n"); scanf_s("%lf",&a); printf("Введите действие \n"); fflush(stdin); scanf_s("%c",&ch); while (ch!=61) { printf("Введите число \n"); scanf_s("%lf",&b); printf("Введите действие \n"); fflush(stdin); scanf_s("%c",&ch); } switch (ch) { case '+': a=a+b; break; case '-': a=a-b; break; case '*': a=a*b; break; case '/': a=a/b; } if (ch==61) printf("=%2.lf\n",a); _getch (); return 0; }
Решение задачи: «Калькулятор - простые вычисления до тех пор, пока пользователь не нажмет "="»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <locale.h> int main() { double a,b=0; char ch; setlocale(LC_ALL,"russian"); printf("Введите число \n"); scanf("%lf",&a); printf("Введите действие \n"); fflush(stdin); scanf("%c",&ch); printf("Введите число \n"); scanf("%lf",&b); while (1) { switch (ch) { case '+': a=a+b; break; case '-': a=a-b; break; case '*': a=a*b; break; case '/': a=a/b; } printf("Введите действие \n"); fflush(stdin); scanf("%c",&ch); if (ch==61) { printf("=%2.lf\n",a); return 0; } printf("Введите число \n"); scanf("%lf",&b); } _getch (); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Объявляются переменные a, b и ch типа double и char соответственно
- Устанавливается русскоязычная локаль с помощью функции setlocale
- Выводится приглашение для ввода первого числа
- Считывается первое число с помощью функции scanf в переменную a
- Выводится приглашение для ввода действия
- Очищается буфер ввода с помощью функции fflush
- Считывается действие с помощью функции scanf в переменную ch
- Выводится приглашение для ввода второго числа
- Считывается второе число с помощью функции scanf в переменную b
- Запускается бесконечный цикл while(1)
- В блоке switch происходит выполнение арифметического действия в зависимости от введенного действия (сложение, вычитание, умножение, деление)
- Выводится приглашение для ввода следующего действия
- Очищается буфер ввода с помощью функции fflush
- Считывается следующее действие с помощью функции scanf в переменную ch
- Если введено действие
=
, то выводится результат вычисления на экране и программа завершается - Если введено другое действие, то программа продолжает выполнение с пункта 13
- Выводится приглашение для ввода следующего числа
- Считывается следующее число с помощью функции scanf в переменную b
- Программа завершается вызовом функции _getch
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д