Определить, является ли матрица симметричной относительно главной диагонали - C (СИ)
Формулировка задачи:
Ребята, помогите не могу сделать, вот кусок кода набросал.
\\\------
Задание
В матрице размерности 7 на 7 определить является ли матрица симметричной относительно главной диагонали. Определить среднее арифметическое
положительных элементов каждого столбца. Найти номера максимальных элементов каждой строки.
\\-----------
SetConsoleOutputCP(1251); const int n = 7; const int m = 7; int a[n][m]; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) a[i][j] = rand()%7; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) cout << a[i][j] << " "; cout << endl; }
Решение задачи: «Определить, является ли матрица симметричной относительно главной диагонали»
textual
Листинг программы
#include <stdio.h> #define N 7 int symmetric(int mtx[][N]); void average(int mtx[][N]); void max_row_num(int mtx[][N]); int main() { int arr[N][N] = { {15,12, 6,-1, 0,16,54}, {12, 9, 1,34,19,38,21}, { 6, 1,-4, 3, 6,72,36}, {-1,34, 3, 9,11,81, 9}, { 0,19, 6,11, 8,102,4}, {16,38,72,81,102,63,7}, {54,21,36, 9, 4, 7, 13} }; printf("%s\n", symmetric(arr) ? "Matrix is symmetric" : "Matrix is not symmetric"); average(arr); max_row_num(arr); return 0; } int symmetric(int mtx[][N]) { int i, j; for(i = 0; i < N - 1; i++){ for(j = i + 1; j < N; j++) if(mtx[i][j] != mtx[j][i]) return 0; } return 1; } void average(int mtx[][N]) { int i, j, sum = 0, count = 0; puts("The arithmetic mean among the positive elements of the column:"); for(j = 0; j < N; j++, sum = 0, count = 0){ for(i = 0; i < N; i++){ if(mtx[i][j] >= 0){ sum += mtx[i][j]; count++; } } printf("%g ", (double)sum / count); } putchar('\n'); } void max_row_num(int mtx[][N]) { int i, j, max; puts("Maximal elements into rows:"); for(i = 0; i < N; i++){ for(j = 0; j < N; j++){ if(!j) max = j; else if(mtx[i][j] > mtx[i][max]) max = j; } printf("arr[%d][%d]\n", i, max); } }
Объяснение кода листинга программы
- В функции
symmetric
происходит проверка матрицы на симметричность относительно главной диагонали. - В функции
average
вычисляется среднее арифметическое положительных элементов каждого столбца матрицы. - В функции
max_row_num
выводится номер столбца с максимальным элементом каждой строки матрицы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д