Проверка, является ли матрица латинским квадратом - C (СИ) (72999)
Формулировка задачи:
Какие проверки нужно сделать чтобы выяснить является ли массив размером nxn латинским квадратом?помогите пожалуйста
Решение задачи: «Проверка, является ли матрица латинским квадратом»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #define N 5 int main(int argc, char* argv[]) { int M[N][N] = { { 3, 2, 1, 7, 4 }, { 6, 4, 3, 8, 5 }, { 1, 3, 8, 5, 6 }, { 9, 1, 5, 4, 3 }, { 7, 6, 4, 9, 2 } }; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) printf("%d ", M[i][j]); printf("\n"); } printf("\n"); bool result = false; for (int i = 0; i < N && !result; i++) for (int j = 0; j < N && !result; j++) { int count = 0; for (int n = 0; n < N; n++) if (M[n][j] == M[i][j] && n != i) count++; if (count > 0) { result = true; continue; } count = 0; for (int k = 0; k < N; k++) if (M[i][k] == M[i][j] && k != j) count++; if (count > 0) result = true; } printf("Matrix is latin quadrant: %s", (result == false) ? "YES" : "NO"); _getch(); return 0; }
Объяснение кода листинга программы
- Объявлена матрица M размером NxN (латинский квадрат)
- Выводится содержимое матрицы M
- Инициализируется переменная result со значением false
- Внутренний цикл проверяет, является ли элемент матрицы M[i][j] присутствующим в строке i, при этом он не должен быть равен i
- Если элемент найден, счетчик count увеличивается на единицу
- Если count больше нуля, то переменная result устанавливается в true и выполняется переход к следующей итерации внешнего цикла
- Внутренний цикл проверяет, является ли элемент матрицы M[i][j] присутствующим в столбце j, при этом он не должен быть равен j
- Если элемент найден, счетчик count увеличивается на единицу
- Если count больше нуля, то переменная result устанавливается в true и выполняется переход к следующей итерации внешнего цикла
- Выводится сообщение о том, является ли матрица латинским квадратом (да/нет)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д