Найти максимальный элемент над побочной диагональю - C (СИ)
Формулировка задачи:
В данной действительной квадратной матрице порядка N*N. Найти максимальный элемент над побочной диагональю.
Решение задачи: «Найти максимальный элемент над побочной диагональю»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #define N 4
- int main(void){
- int i, j, n;
- double k, m[N*N];
- for(i = 0; i < N; ++i){
- for(j = 0; j < N; ++j){
- m[i*N + j] = (double)(rand() % 10);
- printf("%lg ", m[i*N + j]);
- }
- putchar('\n');
- }
- putchar('\n');
- //поиск макс.
- n = N - 1;
- k = m[0];
- for(i = 0; i < n; ++i){
- for(j = 0; j < n - i; ++j){
- if(k < m[i*N + j])
- k = m[i*N + j];
- printf("%lg ", m[i*N + j]);
- }
- putchar('\n');
- }
- printf("\nmax: %lg\n", k);
- return 0;
- }
Объяснение кода листинга программы
В этом коде генерируется случайная матрица размером 4x4, выводится на экран, затем осуществляется поиск максимального элемента по побочной диагонали.
- Объявлены переменные: — i, j, n — счётчики для обхода матрицы; — k — для хранения текущего максимального элемента; — m[N*N] — матрица (в верхней половине хранятся значения, в нижней — результаты сравнения).
- Заполняется матрица случайными числами от 0 до 9 с помощью функции rand().
- Выводится на экран заполненная матрица.
- Начинается поиск максимального элемента с верхней строки, в которую помещены случайные числа.
- Переменная n уменьшается на 1, так как верхняя строка уже была обработана.
- Значение k инициализируется значением первого элемента верхней строки.
- Внутренний цикл имеет такой же размер, как и внешний, так как он обрабатывает количество строк, меньшее, чем количество столбцов.
- Если внутренний цикл завершился, значит, текущий элемент больше текущего максимального элемента, и его значение присваивается переменной k.
- Внешний цикл выводит на экран значения, которые сравнивались с текущим максимальным элементом.
- Выводится на экран найденный максимум.
- Функция main() возвращает 0, заканчивая работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д