2013-11-09 4 views
0

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

В цикле от 0 до n для каждого входа 4-го типа, затем нажмите enter, чтобы проверить их (если они ошибочны, то программа окончания), затем продолжайте вводить еще 4 входа (новые линия) ...

Основном вход заключается в следующем:

1 2 3 4 (вход) (если в порядке -> курсор следующая строка)

7 5 6 8 (ввод) ....

более чем до n.

int i=0; 
while (i <= n){ 
    if(scanf("%d %d %d %d",&array[i],&array[i+1],&array[i+2],&array[i+4])!=4) return 0; 
    i+=5; 
} 

Эта программа заканчивается после нажатия клавиши ввода.

Спасибо кому-нибудь за помощью.

+2

Какова ценность n? вы вводите 4 значения? Если ваше n меньше 5, программа завершится после первого ввода. Почему ваш последний аргумент '& array [i + 4]', а не '& array [i + 3]'? – A4L

+0

n всегда должно быть выше 5, i значения типа 4, i + 4 - это потому, что мне нужен бесплатный индекс для будущего использования. –

ответ

0

Вам нужен другой счетчик для вашего цикла, так как i предназначен для индекса массива.

Если n - это количество времени, которое вы хотите сделать 4 входа, тогда массив должен быть соответствующим образом распределен (кратным 5). Также вы должны использовать меньше, чем n <, не менее равным, если ваш счетчик начинается с 0.

Здесь переменная c используется для условий.

#include<stdio.h> 
#include<stdlib.h> 

int main(int argc, char** argv) 
{ 
    int n = 5; 
    int array[n*5]; // mult 5 because of i+=5/4 inputs at onece + 1 rserved 
    int i=0; 
    int r = 0, c = 0; 
    while (c < n){ 
     printf("type four ints: "); 
     r = scanf("%d %d %d %d",&array[i],&array[i+1],&array[i+2],&array[i+4]); 
     if(4 != r) { 
      printf("bad input, program will exit: %d\n", r); 
      return EXIT_FAILURE; 
     } 
     i+=5; 
     c++; 
    } 
    return EXIT_SUCCESS; 
} 
+0

Последний аргумент кажется 'и array [i + 3]'. –

+0

@SunEric, уже спросил, что в комментарии к вопросу 'i + 3' зарезервирован для будущего использования! – A4L

Смежные вопросы