dpwns1234   4년 전

다른 두 자리 수들은 다 잘 출력이 되는데 한 자리 수는 for문에서 무한 반복이 되네요..

이론상은 완벽한데 어디가 잘못된 것이죠ㅠㅠ 

juice3482   4년 전

일단 if (a[1] == -48 에 괄호가 하나없네요(오타겠죠?ㅋㅋ)

그리고

a[0] -= '0'; 

 if (a[1] != -48) a[1] -= '0'; 

 if (a[1] == -48) a[1] = a[0], a[0] = 0;

이부분에서 문제 하나가 있다고생각합니다.

쓰레기값으로 배열의 값을 구분하는것입니다.

쓰레기값은 경우에따라 달라질수있기때문에 쓰레기값으로 배열의 빈자리를 구분하는건 좋지않은방법이라고생각합니다.

다른방법으로 해보시는걸 추천드릴게요

그리고 두번째로, 입력받은 값을 배열에저장할때 

만약 인덱스의크기가 2인문자배열 (==char name[2])에 1을 입력하게되면 저장되는값이

name[0]==1,name[1]=="쓰래기값" 이 아니라 name[0]==1,name[1]==\0 이되게됩니다.

이때 \0은 NUL 을 의미합니다(NULL아님) NUL은 문자열의끝을의미합니다.

그러므로 문자열의 끝을 알아내고싶을땐 쓰래기값이아닌 \0을 쓰셔야합니다.

사실 이건 원하시는답이아니라 그냥 눈에 띄는 문제점을 이야기해드린겁니다..

실망하셨다면 죄송해요 ^^:;


+코드가 조금 번잡스럽습니다 사실 간단한 수식으로풀수있는문제입니다!! 힘내세요!

dpwns1234   4년 전

전혀 실망하지 않았습니다!!

진짜 딱 제가 궁금하던 것들에 대해 답변해드렸어요 ! 쓰레기값이 경우에 따라 달라진다는 것, 그리고 \0문자와 쓰레기값을 착각하고 있었다는 점!! 놓쳤던 부분들을 알게 되었습니다^^

저 코드와는 좀 다른 방법으로 만들어서 통과했답니다 ㅎㅎ 친절한 답변 정말 감사합니다~~~

아 그리고 괄호 안쓴거 오타 맞아요 ㅋㅋㅋ 그것까지 체크하시다니.. 대단 bb 

댓글을 작성하려면 로그인해야 합니다.