1157번 - 단어 공부
비쥬얼 스튜디오에서 돌릴때는 결과가 잘 나오는데 채점해보니까 틀리다고 나오네요...
어떤 예외가 있는지 알려주실 수 있으신가요
여기사 i가 26이 된 상태로
if문이 실행되서 이상한 결과가 나옵니다.
i = 0으로 초기화 해줬는데 문제가 생긴건가요????
아래 소스코드처럼 해주니까 되는데 while(i++)랑 따로 i++해준거랑 어떤차이가 있는건가요??
wihle(i++ < 26)이랑
아래 두 코드는 메커니즘은 같은거 아닌가요??
아니요
귀찮게 해드려서 죄송합니다ㅜㅜ 한가지만 더 여쭤볼게요
위 코드에서 max를 str[0];으로 0번째 배열로 지정을 해줬기 떄문에
1번쨰 배열부터 비교를 하려고 while(i++)를 해주었는데, i = 24일때 25번째 배열까지 다 비교를 해주고 i = 25일때 i = 26이 되기 때문에
str[26]은 존재하지 않으므로 문제가 생기는건가요??
"존재하지 않는다" 는 개념 자체가 잘못됐습니다.
printf 로 str[26]을 출력해보세요 값이 출력됩니다.
str 주소로부터 sizeof(int) 만큼 26칸 떨어진 지점은 메모리에 존재합니다.
거기에 무슨 값이 들어있을지, 어떤 변수가 저장되어 있는지는 모릅니다.
str[26]은 0일수도 있고 1일수도있고 313511531일수도 있어요.
쓰레기값이라고 하죠.
그래서 이상한 결과가 나옵니다.
아아 이해됬습니다 감사합니다 ㅎㅎ
댓글을 작성하려면 로그인해야 합니다.
lsmmay322 3년 전
비쥬얼 스튜디오에서 돌릴때는 결과가 잘 나오는데 채점해보니까 틀리다고 나오네요...
어떤 예외가 있는지 알려주실 수 있으신가요