Запустите переключатель для символов (=, -, *, /, %) в цикле while
Я пытаюсь написать программу для проекта класса, которая создает работающий общий калькулятор, который принимает +,-,*,/,%. У меня есть оператор switch, который вычисляет значение для оператора. Я борюсь с тем, чтобы включить переключатель в оператор while или do while, чтобы запустить его в цикле.
Изначально я не могу получить условие для вставки в оператор while (то есть while (num < 0)). Калькулятор должен уметь принимать все целые числа, как положительные, так и отрицательные, но не должен работать для поплавков.
Моя теория состоит в том, чтобы запустить начальный оператор switch для начального пользовательского выражения (т. е. 6 + 7), который будет вычислять это выражение. Затем я хочу сохранить это значение во временное целое число. Затем запустите цикл while, который вызывает функцию switch. Таким образом, пользователь может ввести что-то вроде * 8, которое будет оценено с предыдущим итогом. Калькулятор должен работать непрерывно до тех пор, пока не будет получен неверный ввод.
Я не могу придумать другого способа запустить этот калькулятор, но я также не могу заставить его работать.
Это действительно грубый код. Я действительно Новичок в C, поэтому я знаю, что он не идеален.
Что я уже пробовал:
#include <stdio.h> int calculator(int num1, char operator, int num2); int secondCalculator(int temp, char operator, int num2); int main(void) { int num1 = 0; int num2 = 0; int temp = 0; int result = 0; char operator; scanf("%d %c %d", &num1, &operator, &num2); while(0 <= num1 || num1 < 0) { int calculator(int num1, char operator, int num2); //temp = temp; scanf("%c %d", &operator, &num2); int secondCalculator(int temp, char operator, int num2); } return 0; } int calculator(int num1, char operator, int num2) { switch(operator) { case '+': printf("%d ", num1 + num2); break; case '-': printf("%d ", num1 - num2); break; case '*': printf("%d ", num1 * num2); break; case '/': printf("%d ", num1 / num2); break; case '%': printf("%d ", num1 % num2); break; default: printf("Thank you for using the COP2220 calculator."); return num2; } int secondCalculator(int temp, char operator, int num2) { switch(operator) { case '+': printf("%d ", temp + num2); break; case '-': printf("%d ", temp - num2); break; case '*': printf("%d ", temp * num2); break; case '/': printf("%d ", temp / num2); break; case '%': printf("%d ", temp % num2); break; default: printf("Thank you for using the COP2220 calculator."); return num2; } } }