postfix(후위표기계산기)설명 및 소스 레포트
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. 사용되는 스택의 정의

2. 함수 설명

3. 알고리즘 설명

4. 실행화면

5. 프로그램 소스

본문내용

>>>>>>>//
int oper2(char temp)
{
if(temp >= '0' && temp <= '9')
return(1);
else
return(0);
}
//<<<<<<<<<<<<연산기호를 받아 인식후 계산한 결과를 반환하는 함수>>>>>//
int oper3(char c,int t_1,int t_2){
int temp;
switch(c){
case '+' : temp = t_2 + t_1; break;
case '-' : temp = t_2 - t_1; break;
case '*' : temp = t_2 * t_1; break;
case '/' : temp = t_2 / t_1; break;
default : break;
}
return(temp);
}
//<<<<<<<<<<<<<<<<<<<<<< main >>>>>>>>>>>>>>>>>>>>>>>>//
void main(void)
{
char infix[128];//중위 표기된 식을 입력받을 변수
char postfix[128];//중위표기를 후위로 바꾼결과를 받을 변수
int count = 0;
printf("식을 입력하세요 : ");
gets(infix);//식을 입력받음
//-------------중위표기를 후위표기로 바꿈-------------//
for (int i = 0;i <= strlen(infix) ;i++ ){
if (oper(infix[i])){//연산자이면
c_push(infix[i]);//char형 스택에 PUSH하고
postfix[count] = ' ';//postfix에 공백하나 넣고
count++;//count 1증가
}
else if(oper2(infix[i])){// 숫자이면
postfix[count] = infix[i];
//postfix 에 넣음
count++;
}
else if(infix[i] == ')'){// 닫힘괄호 이면
postfix[count]= ' ';//공백하나 넣고
postfix[count+1] = c_pop();//char형 스택에서 POP 한걸 넣고
count = count+2;//count 2 증가
}
}
printf("\npostfix : %s",postfix);// 후위표기로 변환된 결과 출력
count = 0;//count 초기화
char c;
int t_1,t_2;
//------------------후위표기의 연산수행-----------------//
for(int i =0 ; i<= strlen(postfix) ; i++){
if(oper2(postfix[i])){//숫자이면
c_push(postfix[i]);//char형 스택에 PUSH
}
else if(postfix[i] == ' '){
//공백이면
i_push(atoi(c_st.stack));
//char형 스택에 든 문자를 숫자로 변환해서 int형 스택에 PUSH
c_clear();//char형 스택을 비움
c_st.top = -1;//char형 스택의 TOP을 원점으로
}
else if(oper(postfix[i])){//연산자이면
c_push(postfix[i]);//char형 스택에 PUSH
c = c_pop();//char형 스택에서 POP
t_1 = i_pop();//int형 스택에서 POP
t_2 = i_pop();//int형 스택에서 POP
count = oper3(c,t_1,t_2);//연산 수행한 값 대입
i_push(count);//int형 스택에 PUSH
i++;//한칸 건너뜀
}
}
printf("\n계산된 값 : %d",i_st.stack[i_st.top]); //연산된 결과 출력
}
//((((200/5)-20)+(10*17))-(10*5))
  • 가격1,000
  • 페이지수8페이지
  • 등록일2010.03.05
  • 저작시기2002.10
  • 파일형식한글(hwp)
  • 자료번호#427470
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니