Это программа для добавления матриц, но кажется, что компилятор пропускает второй scanf во втором вложенном цикле.Почему компилятор пропускает мой второй цикл scanf?
void input_add_matrices() {
printf("Input number of rows for matrices: "); scanf("%d", &nrow_matrix1); getchar();
printf("Input number of columns for matrices: "); scanf("%d", &ncolumn_matrix1); getchar();
printf("\nInput elements for matrix 1:\n");
for(i=0; i<nrow_matrix1; i++){
for(j=0; j<ncolumn_matrix1; j++){
scanf("%d", &element_matrix1[i][j]); getchar();
}
}
nrow_matrix2=nrow_matrix1;
ncolumn_matrix2=ncolumn_matrix2;
printf("\nInput elements for matrix 2:\n");
for(i=0; i<nrow_matrix2; i++){
for(j=0; j<ncolumn_matrix2; j++){
scanf("%d", &element_matrix2[i][j]); getchar();
}
}
}
Это ошибка компилятора или что-то еще? Пожалуйста помоги.
Выход:
Input number of rows for matrices: 2
Input number of columns for matrices: 2
Input elements for matrix 1:
1
2
1
2
Input elements for matrix 2:
Матрица 2 пусто.
Параметр 'getchar' вызов не требуется. Формат ''% d ''для' scanf' пропускает ведущие пробелы, в том числе новую строку (что, я думаю, вас беспокоит). –
Даже если я опускаю функцию getchar, она все еще встречается. –
Поместите точку останова на этот второй цикл и отлаживайте свой код. Если он останавливается там, то это не компилятор, который пропускает этот цикл. Возможно, ваша программа действительно делает то, что вы ожидаете от нее, но это не значит, что компилятор ничего пропускает. –