본문내용
hile(*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;
}
소개글