selfnumber(i)의 최대값이 10000을 넘어가서 brr[10035]에서 문제가 생기는 것 같네요
배열 크기 늘여주니 정상작동합니다.
4673번 - 셀프 넘버
selfnumber(i)의 최대값이 10000을 넘어가서 brr[10035]에서 문제가 생기는 것 같네요
배열 크기 늘여주니 정상작동합니다.
printf("%d",arr);
printf("%d",brr);
해보시면 arr 주소가 brr주소의 40000 조금뒤에 있는데
10035*sizeof(int)가 40000을 넘어가서 arr값을 바꿔버린 것 같아요
댓글을 작성하려면 로그인해야 합니다.
lsmp12 3년 전
안녕하세요! 주석 달아 놓긴 했는데 글로 코드 한번 더 설명드릴게요
1. 1부터 10000까지의 수를 넣은 arr배열
2. 1부터 10000까지의 수가 각각 문제조건에 따라 만드는 수를 sum으로 둠.
3. 생성자가 존재하는 수의 번호에 해당하는 brr[sum] 배열에는 1을 넣음
4. brr[i]!=1 이면 arr[i] 를 출력.
printf("%d\n,arr[i]) 로 검토해보니까 28번째 줄 이후로 arr[i]의 초반 몇개의 값이 1로 바뀌던데 왜 이러는지 잘 모르겠습니다,,
selfnumber 함수 자체가 arr 배열은 건드리지 않는데 왜 selfnumber 함수 이후로 arr배열의 값이 바뀌는건가요?
답변 부탁드립니다.
모두 새해 복 많이 받으세요 :)