|
아래 소스는 일의자리 숫자까지밖에 계산이 되지 않습니다.
입력받은 어떤 숫자로나 계산이 가능하게끔 수정하고 싶은데 어떻게 수정을 해야 좋을 지 팁 부탁드립니다.
(Ex. 입력을 문자 따로 숫자따로 받거나 혹은 입력받은 문자열에서 숫자를 구분하는데 십의자리나 백의자리도 구분 할수 있는 방법(지금은 100을 입력하면 1,0,0 이렇게 구분하는 거 같습니다..ㅠㅠ) 부탁드립니다!
InitializeStack();
gets(buf);
len = strlen(buf);
i = 0;
while(i < len) {
c = buf[i++];
if(c == ' ')
continue;
else if(c <= '9' && c >= '0')
OperandPush(c-'0');
else if( c == '+' || c == '-' || c == '*' || c == '/' ) {
if(IsEmptyOperatorStack())
OperatorPush(c);
else {
opr = OperatorPop();
if(GreaterOpr(opr , c) ){
opn2 = OperandPop();
opn1 = OperandPop();
opn1 = Calculate(opn1, opn2 , opr);
OperandPush(opn1);
OperatorPush(c);
}
else {
OperatorPush(opr);
OperatorPush(c);
|