Задача на проверку симметрии массива - C (СИ)
Формулировка задачи:
Нужно проверить симметрична ли матрица относительно побочной диагонали. Вот моя программа , помогите пожалуйста, что можно исправить, чтобы заработала?
# include <stdio.h> # include <stdlib.h> # include <time.h> #define N 3 #define M 6 int main() { int A[N][N],i,j,flag,yes,no; srand(time(NULL)); printf("Massive A\n"); for(i=0;i<N;i++){ for(j=0;j<N;j++){ A[i][j]=rand()%101-50; printf("%d\t",A[i][j]);} printf("\n"); } for(i=0;i<N;i++){ for(j=0;j<N;j++){ if((A[i][j])=(A[N-j+1][N-i+1])) flag=yes; else flag=no; } } if(flag==no ) { printf("Ne simmetr"); } else printf("Yes, simmetr"); }
Решение задачи: «Задача на проверку симметрии массива»
textual
Листинг программы
# include <stdio.h> # include <stdlib.h> # include <time.h> #define N 3 int main() { int A[N][N],i,j; srand(time(NULL)); printf("Massive A\n"); for(i=0;i<N;i++){ for(j=0;j<N;j++){ A[i][j]=rand()%101-50; printf("%d\t",A[i][j]); } printf("\n"); } for(i=0;i<N;i++) { for(j=0;j<N;j++) if(A[i][j]!=A[N-j-1][N-i-1]) break; if (j < N) break; } if (i < N ) printf("Ne simmetr"); else printf("Yes, simmetr"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с массивами и временем
- Определение размера массива N = 3
- Создание двумерного массива A размером NxN и инициализация его случайными числами от -50 до 50 с помощью функции rand()
- Вывод массива A на экран
- Проверка симметрии массива с помощью двух вложенных циклов. Первый цикл проходит по всем элементам массива A, а второй цикл проверяет равенство каждого элемента массива со своим зеркальным отображением (A[i][j] сравнивается с A[N-j-1][N-i-1])
- Если найден элемент, не удовлетворяющий условию симметрии, то цикл прерывается с помощью оператора break
- Если после проверки всех элементов массива не было прерываний цикла, то считается, что массив симметричен
- Вывод соответствующего сообщения о наличии или отсутствии симметрии массива