Найти наибольший элемент в заданной строке - C (СИ)
Формулировка задачи:
Написать функцию для произвольного двухмерного классического (не свободного) массива с использованием индексов.
int func(int *array, int dim1, int dim2, ...).
Найти наибольший элемент в заданной строке.
Решение задачи: «Найти наибольший элемент в заданной строке»
textual
Листинг программы
int func(int *array, int dim1, int dim2, int nRow)
{
int r,i,v,off;
if(nRow<0 || nRow>=dim2)
return -1;
off=nRow*dim1;
v=array[off];
for(i=1; i<dim1; i++){
v=array[off+i];
if(v>r)
r=v;
}
return r;
}
Объяснение кода листинга программы
В данном коде представлена функция с именем func, которая принимает в качестве аргументов массив array, размерность массива по первому измерению dim1, размерность массива по второму измерению dim2 и номер строки nRow. Внутри функции происходит следующая последовательность действий:
- Проверка корректности номера строки nRow. Если nRow меньше нуля или больше или равно dim2, то функция возвращает -1.
- Вычисление смещения в массиве для заданной строки nRow. Для этого выполняется умножение nRow на dim1.
- Присваивание первого элемента строки переменной v.
- Цикл начинается с i=1 и выполняется до тех пор, пока i меньше dim1.
- Внутри цикла происходит присваивание следующего элемента строки переменной v.
- Сравнение текущего элемента v с переменной r. Если v больше r, то r присваивается значение v.
- По завершению цикла, функция возвращает значение r. Таким образом, функция func предназначена для поиска наибольшего элемента в заданной строке массива.