Найти минимальный элемент под побочной диагональю - 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)(1 + rand() % 9);
printf("%lg ", m[i*N + j]);
}
putchar('\n');
}
//поиск минимума
n = N - 1;
k = m[N*N - 1];
for(i = 0; i < n; ++i){
for(j = n; j > i; --j){
if(k > m[(N - 1 - i)*N + j])
k = m[(N - 1 - i)*N + j];
}
}
printf("\nmin: %lg\n", k);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
i,j- для использования в циклах;n- для хранения размера массива;k- для хранения минимального элемента;m[N*N]- массив размеромN*N, в котором будут храниться случайно сгенерированные числа.
- Заполняется массив
mслучайными числами от 1 до 9. - Выводится на экран содержимое массива
m. - Начинается поиск минимального элемента:
- Переменная
nинициализируется значениемN-1, так как искомый элемент находится в последней строке массива. - Переменная
kинициализируется значением элементаm[N*N-1]. - В цикле перебираются строки массива, начиная с
i=0, для каждой строки перебираются столбцы, начиная сj=n, и сравниваются текущий элемент массива с минимальным значениемk. Если текущий элемент меньшеk, тоkприсваивается значение текущего элемента.
- Переменная
- Выводится на экран найденный минимум.
- Программа возвращает 0, что означает успешное завершение работы.