중위식후위식스택계산기
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

중위식후위식스택계산기에 대한 보고서 자료입니다.

본문내용

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;
}

키워드

  • 가격1,000
  • 페이지수6페이지
  • 등록일2011.12.21
  • 저작시기2011.8
  • 파일형식한글(hwp)
  • 자료번호#722621
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니