В целочисленном векторе найти его вторые по значению минимальный и максимальный элементы - C (СИ)
Формулировка задачи:
Решение задачи: «В целочисленном векторе найти его вторые по значению минимальный и максимальный элементы»
#include <stdio.h> #include <stdlib.h> // Вывод матрицы void print_matrix(int **matrixnn, int n) { int i, j; if (!matrixnn) return; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("%3d", matrixnn[i][j]); } printf("\n"); } } // Создание матрицы и заполнение случайными числами (от a до b) int **create_matrix(int n, int a, int b) { int i, j; int **matrixnn; if (n <= 0) return NULL; matrixnn = (int**)malloc(n * sizeof(int*)); if (!matrixnn) return NULL; for (i = 0; i < n; i++) { matrixnn[i] = (int*)malloc(n * sizeof(int)); if (!matrixnn[i]) { free(matrixnn); return NULL; } } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { matrixnn[i][j] = a + rand() % (b - a + 1); } } return matrixnn; } // Отражение элементов матрицы слева и справа от главных диагоналей void flip_matrix(int **matrixnn, int n) { int i, j, t; if (!matrixnn) return; for (i = 0; i < n / 2; i++) { for (j = 0; j < i; j++) { // Отразить верхние элементы (выше средней строки) t = matrixnn[i][j]; matrixnn[i][j] = matrixnn[i][n - 1 - j]; matrixnn[i][n - 1 - j] = t; // Отразить нижние элементы (ниже средней строки) t = matrixnn[n - 1 - i][j]; matrixnn[n - 1 - i][j] = matrixnn[n - 1 - i][n - 1 - j]; matrixnn[n - 1 - i][n - 1 - j] = t; } } // Отразить элементы в средней строке, если N нечетно if (n % 2 > 0) { for (j = 0; j < n / 2; j++) { t = matrixnn[n / 2][j]; matrixnn[n / 2][j] = matrixnn[n / 2][n - 1 - j]; matrixnn[n / 2][n - 1 - j] = t; } } } // Главная функция int main(int argc, char *argv[]) { int n = 5; int **matrixnn = create_matrix(n, 1, n); if (matrixnn) { printf("Matrix:\n"); print_matrix(matrixnn, n); flip_matrix(matrixnn, n); printf("\nMatrix after flipping:\n"); print_matrix(matrixnn, n); free(matrixnn); } printf("\nPress any key to exit..."); getchar(); return 0; }
Объяснение кода листинга программы
Код начинается с двух функций: функции print_matrix(), которая выводит матрицу на экран, и функции create_matrix(), которая создает матрицу заданного размера, заполняет ее случайными числами в заданном диапазоне и возвращает указатель на эту матрицу. Затем идет функция flip_matrix(), которая отражает элементы матрицы слева и справа от главных диагоналей. Эта функция работает с матрицей, размер которой нечетным числом. В главной функции программы, после объявления переменной n (размер матрицы), создается матрица с помощью функции create_matrix() и выводится на экран с помощью функции print_matrix(). Затем вызывается функция flip_matrix(), которая отражает элементы матрицы, и результат также выводится на экран. Код завершается стандартным сообщением об успешном выполнении программы и призывом к пользователю нажать любую клавишу для выхода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д