Сравнить все числа относительно главной диагонали матрицы - C (СИ)
Формулировка задачи:
у меня дан квадратный двумерный массив, и мне надо сравнить все числа относительно главной диагонали, вот часть кода, здесь я именно сравниваю числа, но мой код сравнивает только часть чисел..не все, я не могу сообразить как сравнить именно все числа, подскажите пожалуйста
for(i=0;i<y;i++) // ищутся одинаковые значения { for(j=0;j<x;j++) { if(M[i][j+1]==M[i+1][j])
Решение задачи: «Сравнить все числа относительно главной диагонали матрицы»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 8 int main() { int A[N][N], i, j, k, l; srand(time(NULL)); for(i = 0; i < N; i++, putchar('\n')) for(j = 0; j < N; j++) printf("%3d", A[i][j] = rand() % 18 + 1); putchar('\n'); for(i = 1, k = 1; i < N; i++, k++){ for(j = 0, l = 0; j < i; j++, l++){ if(A[i][j] == A[l][k]){ A[i][j] = -1; A[l][k] = -3; } } } for(i = 0; i < N; i++, putchar('\n')) for(j = 0; j < N; j++) printf("%3d", A[i][j]); }
Объяснение кода листинга программы
В этом коде:
- Создается матрица A размером NxN и заполняется случайными числами от 1 до 18.
- Инициализируются три переменные i, j, k, l для обхода матрицы.
- Перебираются элементы матрицы A, начиная с главной диагонали (i=1, j=0; i=2, j=1; и т.д.).
- Если элементы A[i][j] и A[l][k] равны, то они заменяются на -1 и -3 соответственно.
- Выводится матрица A. Этот код можно использовать для поиска и удаления дубликатов в матрице, но он не оптимизирован для больших матриц, так как использует два вложенных цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д