[프로그레밍]Linear Linked List를 사용한 사칙연산
- 최초 등록일
- 2006.05.18
- 최종 저작일
- 2006.05
- 6페이지/ 한컴오피스
- 가격 1,500원
소개글
1. 일반적으로 많이 사용하는 사칙연산의 표기법을 infix (중위표기법)이라 한다.
E.g.) 2 * 3 + 6 / 2 - 4
이 infix를 stack을 이용하여 postfix(후위표기법)로 전환한다.
E.g.) 2 3 * 6 2 / + 4 -
(postfix를 사용하면 operator 우선순위에 맞게 연산이 수행 된다)
2. 이 postfix를 이용하여 식에 맞는 연산을 수행한다.
이 연산 또한 stack구조를 이용한다.
E.g) 2 3 * 6 2 / + 4 -
결과: 5
3. 편의상 숫자는 정수 한자리로만 제한한다.
4. 허용되는 연산자는 (, ), +, -, *, / 로만 제한한다.
5. 프로그램은 user가 특정 명령을 할 때 종료되어야 한다.
E.g.) e, q or ^z etc...
컴파일 실행환경
Microsoft Visual C++ 6.0
본문내용
void main(void)
{
char infix_funct[256];// 초기 식을 받을 곳
char postfix_funct[256];// 식을 postfix로 변화하여 저장할곳
int result; //결과를 저장할곳
printf("계산 할 식을 입력하시오 ( *,/,+,-,(,) ) : \n");
printf("종료하실려면 (q)를 입력 하십시요 \n");
while(1){
scanf("%s",infix_funct); //식을 입력 받음
if(*infix_funct==`q`){ //q가 입력 될 경우 종료
exit(1);}
postfix(infix_funct, postfix_funct); //postfix로 변화와 출력
printf("\nPostfix : %s", postfix_funct);
result = calculate(postfix_funct); //식을 계산하고 출력
printf("\n연산 결과 : %d\n", result);
}
}
참고 자료
없음