본문내용
while(*postfix != \'\\0\') // 입력한식이\'0\'이아닐때까지반복
{
if(*postfix == \' \') // *postfix의값이비어있다면
{
*postfix++; // *postfix의위치1증가
continue
}
else if(isdigit(*postfix)) // postfix의값이숫자라면
{
int j=0;
while(isdigit(*postfix))
string[j++] = *postfix++; // postfix의다음주소에있는값이string[j++]로할당.
string[j]=\'\\0\'
v= atoi(string); // atoi 반환
push(integer,v); // 인트형v라는입력한숫자를넣는다.
}
else // 연산자라면
{
op2 = pop(integer); // pop에서정수를꺼내op2에할당
op1 = pop(integer); // pop에서정수를꺼내op1에할당
switch(*postfix) // *postfix의연산자가
{
case \'+\': r = op1 + op2; break //\'+\'이면op1 + op2로지정
case \'-\': r = op1 - op2; break //\'-\'이면op1 - op2로지정
case \'*\': r = op1 * op2; break //\'*\'이면op1 * op2로지정
case \'/\': r = op1 / op2; break //\'/\'이면op1 / op2로지정
case \'%\': r = op1 % op2; break //\'%\'이면op1 % op2로지정
}
push(integer, r); // stack에정수라는값으로r을저장
}
*postfix++; // *postfix의주소값을더해준다.
}
r = pop(integer); // 정수저장했던것을r로할당
return r;
}
int main(int argc, char *argv[]) // 인자의갯수를정수로가지기위하여
{
int i;
char postsusik[max];
char susik[max];
cout << \"중위식: \"
cin >> susik;
postfix(postsusik, susik); // susik에사용자가입력한숫자와연산자가저장
cout << \"후위식: \"
for(i=0; i < strlen(postsusik); i++) // 후위식의길이만큼반복하는문장
cout<
cout << endl << \"=\" << eval(postsusik) << endl;
return 0;
}
{
if(*postfix == \' \') // *postfix의값이비어있다면
{
*postfix++; // *postfix의위치1증가
continue
}
else if(isdigit(*postfix)) // postfix의값이숫자라면
{
int j=0;
while(isdigit(*postfix))
string[j++] = *postfix++; // postfix의다음주소에있는값이string[j++]로할당.
string[j]=\'\\0\'
v= atoi(string); // atoi 반환
push(integer,v); // 인트형v라는입력한숫자를넣는다.
}
else // 연산자라면
{
op2 = pop(integer); // pop에서정수를꺼내op2에할당
op1 = pop(integer); // pop에서정수를꺼내op1에할당
switch(*postfix) // *postfix의연산자가
{
case \'+\': r = op1 + op2; break //\'+\'이면op1 + op2로지정
case \'-\': r = op1 - op2; break //\'-\'이면op1 - op2로지정
case \'*\': r = op1 * op2; break //\'*\'이면op1 * op2로지정
case \'/\': r = op1 / op2; break //\'/\'이면op1 / op2로지정
case \'%\': r = op1 % op2; break //\'%\'이면op1 % op2로지정
}
push(integer, r); // stack에정수라는값으로r을저장
}
*postfix++; // *postfix의주소값을더해준다.
}
r = pop(integer); // 정수저장했던것을r로할당
return r;
}
int main(int argc, char *argv[]) // 인자의갯수를정수로가지기위하여
{
int i;
char postsusik[max];
char susik[max];
cout << \"중위식: \"
cin >> susik;
postfix(postsusik, susik); // susik에사용자가입력한숫자와연산자가저장
cout << \"후위식: \"
for(i=0; i < strlen(postsusik); i++) // 후위식의길이만큼반복하는문장
cout<
return 0;
}
소개글