Ошибка с выводом квадратной матрицы - C (СИ)
Формулировка задачи:
Программа меняет в квадратной матрице 4*4 местами первый и 4 столбцы. Все работает, но выводится часто "Введите элементы массива:"
#include <stdio.h>
#include <stdlib.h>
#include <locale>
#define M 4
#define N 4
int main(void)
{
setlocale(LC_ALL, "Russian");
int A[M][N]={0};
int K1, K2, i , j;
int temp;
for (i = 0; i < 4; i = i + 1) { // ввод массива
for (j = 0; j < 4; j = j + 1) {
printf("Введите элементы массива: \n ");
scanf("%d", &A[i][j]);
}
}
for (i = 0; i < 4; i = i + 1) { // вывод массива
printf("\n");
for (j = 0; j < 4; j = j + 1) {
printf("%d\t",A[i][j]);
}
printf("\n");
}
K1 = 1;
K2 = 4;
if (K1>=K2 || K1<1 || K2>N) {
puts("K1 or K2 incorrect!");
exit(1);
}
i = 0;
while (i < M) {
temp = A[i][K1-1];
A[i][K1-1] = A[i][K2-1];
A[i][K2-1] = temp;
++i;
}
i = 0;
while (i < M) {
j = 0;
while (j < N)
{
printf("%i ", A[i][j]);
++j;
}
putchar('\n');
++i;
}
system("PAUSE");
return 0;
}Решение задачи: «Ошибка с выводом квадратной матрицы»
textual
Листинг программы
printf("Введите элементы массива: \n ");
for (i = 0; i < 4; i = i + 1) { // ввод массива
for (j = 0; j < 4; j = j + 1) {
scanf("%d", &A[i][j]);
}
}
Объяснение кода листинга программы
- Программа запрашивает у пользователя ввести элементы массива.
- Используется два вложенных цикла, где внешний цикл выполняется 4 раза, а внутренний - столько раз, сколько задано в условии внутреннего цикла.
- В каждой итерации внутреннего цикла программа запрашивает у пользователя ввести один элемент массива и сохраняет его в соответствующую ячейку массива A.
- Значения переменных i и j равны 0 после каждой итерации внешнего цикла.
- Размер массива A равен 4x4.