Отобразить матрицу симметрично относительно главной диагонали - C (СИ)
Формулировка задачи:
Заполнить матрицу А случайными числами .
Отобразить матрицу симметрично относительно главной диагонали.
Найти максимальный и минимальный элемент главной диагонали.
Решение задачи: «Отобразить матрицу симметрично относительно главной диагонали»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 10 #define predel 100 int i_comp(const void *a, const void *b) { return *(int*)a - *(int*)b; } int main(void) { int i, j, l, mat[N][N]; int diag[N]; for(i = 0; i < N; i++) for(j = 0; j < N; j++) mat[i][j] = rand() % predel; printf("Заполняем матрицу случайными числами от 0 до %d:\n", predel); for(i = 0; i < N; i++) { for(j = 0; j < N; j++) printf("%d\t", mat[i][j]); puts("\n\n"); } puts("Отображаем матрицу симметрично по диагонали:\n"); j = 1; l = 1; for(i = 0; i < N; i++) { for(; j < N; j++) mat[j][i] = mat[i][j]; j = ++l; } for(i = 0; i < N; i++) { for(j = 0; j < N; j++) printf("%d\t", mat[i][j]); puts("\n\n"); } j = 0; l = 0; for(i = 0; i < N; i++) { diag[i] = mat[i][j]; j++; } qsort(diag, N, sizeof(int), i_comp); printf("Минимаьный элемент диагонали: %d\n", diag[0]); printf("Максимальный элемент диагонали: %d\n", diag[N-1]); return 0;
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с I/O и для определения размера матрицы
- Определяем функцию сравнения для работы с qsort
- Задаем размерность матрицы N и максимальное значение элементов матрицы predel
- Заполняем матрицу случайными числами от 0 до predel
- Выводим заполненную матрицу на экран
- Выводим сообщение о том, что будем отображать матрицу симметрично по диагонали
- Создаем копию матрицы для сохранения исходных данных
- Сортируем элементы главной диагонали матрицы по возрастанию
- Выводим на экран минимальный и максимальный элементы главной диагонали
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д