Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C_Kurs_Lekt / DOC_RAZNOE / Работа с массивом _поиск MIN_

.pdf
Скачиваний:
11
Добавлен:
13.02.2016
Размер:
58.71 Кб
Скачать

/* Пример работы с массивом - вектором */

// Нахождение 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;

}