C101 : лучший способ для заполнения массива из пользовательского ввода ?

мне трудно понять и, следовательно, управления массивами и индексы вручную в C. это мои две классические подходы, но они, кажется, не работает, так как они продолжать цикл, если условие будет достигнуто:

#include<stdio.h>
#define MAX 255

int main(){

    int arr[MAX]={0};
    int idx=0;

    /* Approach #1 */

    printf("Enter elements, -1 to finish:n");
    scanf("%d", &arr[idx]);

    while(arr[idx-1] != -1 && idx < MAX){
        printf("Enter elements, -1 to finish:n");
        scanf("%d", &arr[idx]);
        idx++;        
    }

    /* Approach #2 */

    do{
        printf("Enter elements, -1 to finish:n");
        scanf("%d", &arr[idx]);
        idx++;
    }while(arr[idx-1] != -1 && idx < MAX);

    // Main func continues here.

}

Любые советы будут очень важно!

Обновление:

Теперь все работает! спасибо большое все из вас, ребята, за такие мгновенные ответы. Это, безусловно, большая общность, она помогает мне многое.

Найдено 8 ответов:

C101: the best way to fill an array from user input?

http://stackoverflow.com/questions/112582/c101-the-best-way-to-fill-an-array-from-user-input

Посмотреть решение →