hsh04060   4달 전

테스트 해볼때 값은 잘 나오는데 제출하면 자꾸 틀렸다고 나오네요 ㅠㅠ

어느부분에서 틀린걸까요?

indioindio   4달 전

while (odd[k]!=0){

            if (min>odd[k]){
                min=odd[k];
                }
            total+=odd[k];
            k++;
        }

k가 7이 되어, odd[7] != 0인지를 테스트하게 됩니다. odd[7]은 odd배열 밖의 값이므로 0이 아닌 다른 값이 나올 수도 있겠죠. 

odd 배열의 크기를 8로 하여 odd[7]까지 읽을 수 있게하여 배열이 끝났다는 것을 확실히 알 수 있게 하면 통과가 됩니다.

다만 odd배열에 값을 넣거나, 읽는 과정에서 0인지를 체크하기보다는(문제가 0을 포함한 자연수 중에서 짝수로 바뀌었다면 even 배열에 전부 -1을 넣고 하기에는 귀찮죠) 

for (i=0; i<7; i++) {

    scanf("%d", &n);

   if (n % 2 == 1)

       odd[cnt++] = n;

}

이런 식으로 홀수 배열의 cnt를 갖고 계시면 어떨까 싶네요. 그리고 배열 n도 사용할일이 없으므로 그냥 int n 으로 대체 할 수 있구요.

indioindio   4달 전

그리고 사실 odd 배열도 애초에 사용하지 않아도 될 것 같네요.

hsh04060   4달 전

감사합니다!!

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