11720번 - 숫자의 합
답은 제대로 나오는거 같은데... 자꾸 틀렸다고 하네요;
어디가 ㅁ
newNum 은 지역변수라서 모든 상황에서 초기화(예를 들어, 전역 변수인 경우 0 처럼..)가 보장되지 않습니다.
newNum = 0 하시기만 하면 정답이십니다.
죄송하지만 newNum+=(num[i]-'0'); 여기에서 -'0'을 해주는 이유 좀 여쭤봐도 될까요?
char 에 저장되는 하나의 문자가 int 형에 할당될 때 숫자값으로 변형이 되도록 하기 위해서 '0' 만큼 빼주는 것입니다.
ascii table 을 검색해 보시길... : )
이 코드 NewNum=0 처리하고 제출하면 맞았습니다! 처리되긴 하는데 컴퓨터에 소스코드 복사해서 c파일 컨파일 후 실행하면
10이하 수는 괜찮은데 10부터 실행하려고하면 10입력 12345678910 입력하면 55가 출력안되고 46이 나오는데
이렇게 되면 초기화해서 쓰레기값이 나올 이유가 있는게 아닌데 왜 46이라는 값이 나오는지 모르겠어요
제가 작성한거는 문자열 하나씩 읽어서 더하는거여서 10이 아니라 1, 그리고 0을 읽어서 그래용~
댓글을 작성하려면 로그인해야 합니다.
minc 7년 전
답은 제대로 나오는거 같은데... 자꾸 틀렸다고 하네요;
어디가 ㅁ