Задачи поиска в массивах

Решение таких задач сводится к установлению того, как обрабатывается каждый элемент или указанные элементы. Затем подбирается подходящая схема перебора, в которую вставляются операторы обработки элементов массива.

Пример 1. Найдем минимальный элемент в одномерном целочисленном массиве, заданном случайными числами на промежутке [-100; 100).

Один из алгоритмов поиска минимального элемента в массиве таков. Будем формировать значение минимального элемента в переменной min. Предположим, что минимальный элемент массива равен нулевому (min=x[0]). Затем выполним просмотр массива с первого элемента до последнего (for (i=1;i<k;i++)). Каждый элемент массива сравниваем со значением переменной min. Если значение очередного i-го элемента массива меньше min, то выполняем присваивание min=x[i].

//Поиск наименьшего элемента в массиве

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

//подключение модуля для генератора случайных чисел

#define max 100

 

void gen (int k,int a, int b,int x[max]);

//прототип функции генерации массива

void out (int k,int x[max]);

//прототип функции вывода массива

int minimum (int k,int x[max]);

//прототип функции поиска минимального элемента

 

void main (){

int mas[max],n;

do {

printf("\nВведите количество элементов массива n

(n<=100): ");

scanf ("%d",&n);

}

while (n>max);

gen(n,-100,100,mas);

out(n,mas);

printf ("\nНаименьший элемент в массиве равен %d",

minimum(n,mas));

}

//Описание функции генерации массива

void gen(int k,int a, int b, int x[max]){

int i;

srand(time(NULL)*1000);

//устанавливает начальную точку генерации случайных чисел

for (i=0;i<k;i++){

x[i]=(rand()*1.0/(RAND_MAX)*(b-a)+a);

//функция генерации случайных чисел на [a,b)

}

}

//Описание функции вывода массива в строку

void out (int k,int x[max]){

int i;

printf("\nВывод значений %d элементов массива в строку:

\n",k);

for (i=0;i<k;i++)

printf("%-6d",x[i]);

}

//Описание функции поиска минимального элемента

int minimum (int k,int x[max]) {

int i,min=x[0];

for (i=1;i<k;i++)

if (min>x[i]) min=x[i];

return min;

}

Пример 2. Найдем среднее арифметическое элементов одномерного вещественного массива, заданного с клавиатуры.

//Поиск среднего арифметического элементов массива

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

//подключение модуля для генератора случайных чисел

#define max 100

 

void gen (int k, float x[max]);

//прототип функции генерации массива

float sred_arifm (int k, float x[max]);

/*прототип функции поиска среднего арифметического элементов массива*/

 

void main (){

float mas[max];

int n;

do {

printf("\nВведите количество элементов массива n

(n<=100): ");

scanf ("%d",&n);

}

while (n>max);

gen(n,mas);

printf ("\nСреднее арифметическое массива равно %f",

sred_arifm(n,mas));

}

//Описание функции генерации массива с клавиатуры

void gen(int k, float x[max]){

int i;

printf("\nВведите значения %d элементов массива: \n",k);

for (i=0;i<k;i++){

printf("x[%d]= ",i);

scanf("%f",&x[i]);

}

}

//Описание функции поиска среднего арифметического элементов массива

float sred_arifm (int k, float x[max]) {

int i;

float sum=0.0;

for (i=0;i<k;i++)

sum+=x[i]; //вычисление суммы элементов массива

return sum/k;

}








Дата добавления: 2015-02-16; просмотров: 633;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.