C_Kurs_Lekt / DOC_RAZNOE / Работа с массивом _поиск MIN_
.pdf/* Пример работы с массивом - вектором */
// Нахождение Min - минимального ( или Max - максимального) // элемента массива
#include <stdio.h> #include <stdlib.h> int main(){
int n, a , b, i, min, n_min;
// |
min |
- |
значение минимального элемента |
// |
n_min |
- |
номер минимального элемента |
int *dmas; /* dmas - указатель на целое (число или массив). */ // запрашиваем размеры массива
printf(" Vvedite chislo elementov massiva dmas n = ? "); scanf("%d", &n);
/* выделяем память для массива и его начальный адрес запоминаем в указателе. */
dmas=(int *)calloc(n, sizeof(int));
/* заполняем массив случайными целыми числами в интервале [a,b] */
a= -5; b= 24; //srand(time(NULL)); for(i=0;i<n;i++) dmas[i]=a+rand()%(b-a+1);
/* Печатаем значения массива (вектора) */ printf("\n\nIshodnyj massiv\n\n");
for (i=0;i<n;i++) printf("%2d ", dmas[i]); printf("\n");
// ##########################################################
// Индивидуальное задание
// Нахождение Min - минимального ( или Max - максимального) // элемента массива /* Алгоритм поиска:
1) Считаем первый элемент минимальным (максимальным); 2) "Проходим" вдоль массива, если встречается элемент
меньше (больше) чем найденный, новый элемент считаем минимальным (максимальным)
*/
//считаем что первый лемент минимальный
min = dmas[0]; n_min = 0;
//далее - начинаем проверять остальные лементы (начиная со
//второго
for (i=1; i<n; ++i) if (dmas[i] < min){
/* ==> Если в условии поменять < на > - будем искать максимальный элемент
==> условие "<" - находит минимальный лемент и запоминает номер (индекс) первого минимального элемента если минимальных элементов несколько
==> условие "<=" - находит минимальный лемент и запоминает номер (индекс) последнего минимального элемента если минимальных элементов несколько
*/
min = dmas[i]; n_min = i;
}
printf("\n\nMinimal`nyj element = %d\n", min); printf("Nomer minimal`nogo elementa = %d\n", n_min);
//##########################################################
//освобождение памяти, выделенной для массива
free(dmas); return 0;
}