재귀함수로 인터렉티브 계산기 만들기
//인터렉티브 계산기
#include <iostream>
#include <string>
#include <cstdlib>
#include <stack>
using namespace std;
float calculate(float currentHistory)
{
char oper;
float num;
while (true)
{
cout << "연산자 입력(+, -, *, /):";
cin >> oper;
if (oper == 'p')
{
cout << "계산기 종료" << endl;
exit(0);
}
if (oper == '+' || oper == '-' || oper == '*' || oper == '/')
break;
cout << "잘못입력하셨습니다!" << endl;
}
cout << "숫자 입력: ";
cin >> num;
if (oper == '+')
currentHistory += num;
else if (oper == '-')
currentHistory -= num;
else if (oper == '*')
currentHistory *= num;
else if (oper == '/')
currentHistory /= num;
cout << currentHistory << endl;
return calculate(currentHistory);
}
float ImmediateTerminationCheck(const string& str)
{
if (str == "p")
{
cout << "계산기 종료" << endl;
exit(0);
}
try
{
return stof(str);
}
catch (...)
{
exit(0);
}
}
int main()
{
cout << "p 를 누르면 즉시 종료됩니다 " << endl;
string firstInput;
cout << "숫자 입력: ";
cin >> firstInput;
float firstNum = ImmediateTerminationCheck(firstInput);
float result = calculate(firstNum);
cout << result << endl;
}
'개인 코테 & 스타디 <비공개> > 알고리즘 스타디 과제' 카테고리의 다른 글
| 농부, 배추, 염소, 늑대 강건너기 (0) | 2025.10.01 |
|---|---|
| 과제 - 자료구조(Data Struct) (1) | 2025.09.14 |