일단 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년 전
다른 두 자리 수들은 다 잘 출력이 되는데 한 자리 수는 for문에서 무한 반복이 되네요..
이론상은 완벽한데 어디가 잘못된 것이죠ㅠㅠ