c 초보 배열 질문있습니다..왜 실행이 잘안되는지;;

hwiba의 이미지

#include <stdio.h>

int main(void)
{
    int arr[10];
    int temp;
    int i;
    int j=0, k=10;

    for(i=0; i<10; i++)
    {
        scanf("%d", &temp);

        if(temp%2!=0)
        {
            arr[j]=temp;
            j++;
        }

        else if(temp%2==0)
        {
            arr[k]=temp;
            k--;
        }

        else
            return -1;
    }

    for(i=0; i<10; i++)
        printf("%d,", arr[i]);
    printf("\n");

    return 0;
}

정수를 10개(배열) 입력받아서
홀수는 배열의 왼쪽부터 저장이되고
짝수는 배열의 오른쪽부터 저장이 되게 하려는건데요

1 1 4 4 4 4 3 3 2 2 를 입력받앗다면

배열에는 {1, 1, 3, 3, 2, 2, 4, 4, 4, 4} 로 저장되게 말입니다

근데 실행시켜보니

1
1
4
4
4
4
3
3
1,1,3,3,-1075248724,-1075248872,134513839,4,4,4,

숫자를 다 입력받지도 않고 꺼져버리네요;; 뭐가잘못된건지 좀 짚어주시면 감사하겟습니다

익명 사용자의 이미지

k = 10일때 배열 범위를 벗어나는군요. 8)

superkkt의 이미지

int j=0, k=9;

이렇게 바꿔서 선언하면 되겠네요..

======================
BLOG : http://superkkt.com

hwiba의 이미지

그런 실수를 햇엇군요

감사합니다 :D :D :D :D :D :D :D :D :D :D