Поставим задачку. Пускай имеется массив из целых чисел. Необходимо среди всех элементов массива, найти элемент с минимальным значением.
Это задачка даже не на одну трубку. Сначала взгляните на картинку, и найдите в этом столбике минимальный элемент.
А теперь стоп. Задумайтесь на секундочку, как вы это сделали? Скорее всего, вы пробежались по столбику глазами, и выявили там самое меньшее число. Аналогичную процедуру должна выполнить и наша программа.
Первым делом следует подумать, где будет храниться минимальное значение. Для него необходима отдельная переменная. Назовем еёmin. Сохраним в неё значение первого элемента массива, чтобы нам было с чем сравнивать. Дальше нужно пройтись по массиву. Это не сложно, организуем для этого цикл. В работе с массивами в большинстве случаев используется цикл for. Так как там сразу же есть счетчик, который меняется каждой итерации. Теперь основная часть алгоритма. Нам нужно последовательно сравнивать элементы массива с минимальным, и если окажется так, что элемент массива меньше минимального, то следует сохранить это значение вместо него. Вот, в принципе, и весь алгоритм.
Теперь запишем это все в виде программы.
Листинг 12.1
#include <stdio.h>
int main(){
int min, arr[11]={5,14,7,4,11,2,6,12,8,7,3};
min = arr[0];
for (int i=1; i<11; i++){
if (arr[i]<min)
min = arr[i];
}
printf("%d\n", min);
return(0);
}
Обратите внимание, что в данном случае мы задали элементы массива при его объявлении. Запомните этот способ, он тоже иногда бывает полезен. Кстати, если бы мы объявили не все элементы, а лишь часть из них, то все остальные, автоматически заполнились бы нулями. Можете это проверить самостоятельно.
В дополнение к словесному описанию проиллюстрируем картинкой работу нашей программы.
Рис. 2 Иллюстрация поиска минимума в одномерном массиве.
Еще раз посмотрите приведенный выше код, вам должно быть в нем все понятно. Аналогично можно найти максимальный элемент в массиве.