У меня есть следующий код:
#include <stdio.h>
int main(int argc, char **argv) {
int arr[2];
arr[0] = 0;
arr[1] = 0;
int end = 0;
int i;
for (i=0; i<2 ; i++){
scanf(" num %d", &arr[i]);
}
scanf(" end %d", &end);
printf("arr0 %d \n", arr[0]);
printf("arr1 %d \n", arr[1]);
printf("end %d \n", end);
}
Для ввода:
num 1
num 2
end 3
Работает отлично.
Но это также работает для следующего ввода:
num 1
end 2
Откуда он знает, что нужно завершить цикл for и оценить последнее сканирование? Почему не терпит неудачу?