Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[11824] Re:스택기반 계산기 소스인데요. 빌더에서 이런메세지가뜹니다.
아루스 [tinydew4] 1854 읽음    2008-03-10 06:49
Division by zero
0에 의한 나눗셈이죠.
실시간으로 값을 파악하셔야 하는데 코드를 보니 나눗셈은 한군데서만 쓰였군요.
그 값을 유심히 지켜보세요.


오규원 님이 쓰신 글 :
: #include <stdio.h>
: #include <stdlib.h>
: #include <conio.h>
:
: #define MAX_STACK_SIZE 100
: #define MAX_EXPRESSION 100
: #define END_OF_INPUT '#'
: int stack[MAX_STACK_SIZE];
: int top = 1;
:
: void push(int item)
: {
:     if(top >= (MAX_STACK_SIZE-1))
:     {
:         printf("stack is full");
:         return;
:     }
: }
:
: int pop()
: {
:     if(top == -1)
:     {
:         printf("stack is empty");
:         exit(0);
:     }
:     return stack[top--];
: }
:
: eval(char exp[])
: {
:     int op1, op2;
:     int value;
:     char ch;
:     int i = 0;
:
:     while((ch = exp[i++]) != END_OF_INPUT)
:     {
:         if(ch != '+' && ch != '-' && ch != '*' && ch != '/')
:         {
:             value = ch - '0';
:             push(value);
:         }
:         // 입력이 연산자이면 피연산자를 스택에서 제거
:         //연산을 수행하고 결과를 스택에 저장
:         else
:         {
:             op2 = pop();
:             op1 = pop();
:             switch(ch)
:             {
:                 case '+':push(op1+op2);break;
:                 case '-':push(op1-op2);break;
:                 case '*':push(op1*op2);break;
:                 case '/':push(op1/op2);break;
:             }
:         }
:     }
:     return pop();
: }
:
: void main()
: {
:     int result;
:     printf("후위표기식은 82/3-32*+#\n");
:     result = eval("82/3-32*+#");
:     printf("결과값은 %d\n", result);
:     getch();
: }
:
: 이 소스인데요. 에러는 없는데 실행할때 다음 화면과 같은 메세지가 뜹니다.
:
: 왜 저런메세지 뜨는지 좀 알고싶습니다. vc소스라서 그런지 vc에서는 잘돌아가더군요.

+ -

관련 글 리스트
11822 스택기반 계산기 소스인데요. 빌더에서 이런메세지가뜹니다. 오규원 1885 2008/03/09
11824     Re:스택기반 계산기 소스인데요. 빌더에서 이런메세지가뜹니다. 아루스 1854 2008/03/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.