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

C/C++ Q/A
[6260] Re:잘모르겠습니다..고수분들의 답변 부탁드려요
secondmoon [kdwlei] 7495 읽음    2008-11-12 09:17
1. 문제 해결을 위해 디버깅 방법을 좀 익히셔야 할 듯 합니다.. 주위에 좀 하시는 분들께 간단한 디버깅 방법 물어보세요..

2. 숫자가 2자리 이상일 경우 (ex. 11+1) 문제가 생기는 구조네요..

해결하려면 구조를 뜯어고치셔야 함.

3. 간단하게 밑에 설명해 뒀습니다. 확인해보세요.


: #include<stdio.h>
: main() {
:             int i,sum;
:             char str[40],su[3]" " ;                    /////// su[3]에 대해 초기화를 하셔야합니다. su[0] = '\0' ...
:             gets(str);
:             if(strlen(str)>40){                         
:                      printf("40바이트 초과 다시 입력 "\n);
:                      gets(str);
:             }
:             str[40]=atoi(str);                        
//// 1. str[40]은 접근하면 안되는 곳, 배열 범위 오버
//// 2. atoi에 문장을 그대로 넣으면 안되죠.. 밑에 for 문에 끝난후 atoi(su[0]) 이런 식으로 해야함


:            
:             for(i=0 ; i<40 ; i++) {
:                              if(str[i]!=NULL){         ///// 빈칸은 ' '으로 체크하시고..
:                                                if(su[0]==NULL){   //// 위에서 초기화를 해야 여기서 if문 안으로 들어갑니다.
:                                                             su[0]= str[i];
:                                                }
:                                                else if(su[1]==NULL){
:                                                             su[1]= str[i];
:                                                }
:                                                else if(su[2]==NULL){
:                                                             su[2]= str[i];
:                                                }
:                               }
:              }
:             if(su[1]=='+'){
:                          sum = su[0] + su[2];   ///// su들에 atoi처리
:             }
:             else if (su[1]=='-'){
:                          sum = su[0] - su[2];
:             }
:             else if (su[1]=='*'){
:                          sum = su[0] * su[2];
:             }
:             else if (su[1] =='/'){
:                          sum = su[0] / su[2];
:             }
:             printf("%d %d %d = %d\n",su[0],su[1],su[2],sum);
: }
: -----------------------------------------------------------------------------
: 이게 에러가 떠주면 고치기라도 하겠습니다만 실행은 되는데 값은 이상하게 나오고..

+ -

관련 글 리스트
6259 잘모르겠습니다..고수분들의 답변 부탁드려요 미치겠습니다. 4624 2008/11/12
6260     Re:잘모르겠습니다..고수분들의 답변 부탁드려요 secondmoon 7495 2008/11/12
6261         Re:Re:조금 고쳤는데요. 재질문. 11926 2008/11/12
6262             Re:Re:Re:조금 고쳤는데요. secondmoon 5177 2008/11/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.