КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Задачи поиска в массивахРешение задач данного вида сводится к установлению того, как обрабатывается каждый элемент или указанные элементы. Затем подбирается подходящая схема перебора, в которую вставляются операторы обработки элементов массива. Пример 1. Найдем минимальный элемент в одномерном целочисленном массиве, заданном случайными числами на промежутке [-100; 100). Один из алгоритмов поиска минимального элемента в массиве таков. Будем формировать значение минимального элемента в переменной min. Предположим, что минимальный элемент массива равен нулевому (min=x[0]). Затем выполним просмотр массива с первого элемента до последнего (for (i=1;i<k;i++)). Каждый элемент массива сравниваем со значением переменной min. Если значение очередного i-го элемента массива меньше min, то выполняем присваивание min=x[i]. //Поиск наименьшего элемента в массиве #include "stdafx.h" #include <iostream> using namespace std; #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]); //прототип функции поиска минимального элемента
int _tmain(int argc, _TCHAR* argv[]){ 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)); system("pause"); return 0; }
//Описание функции генерации массива 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()%(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 "stdafx.h" #include <iostream> using namespace std; #include <time.h> //подключение модуля для генератора случайных чисел #define max 100
void gen (int k, float x[max]); //прототип функции генерации массива float sred_arifm (int k, float x[max]); /*прототип функции поиска среднего арифметического элементов массива*/
int _tmain(int argc, _TCHAR* argv[]){ 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)); system("pause"); return 0; }
//Описание функции генерации массива с клавиатуры 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; }
Дата добавления: 2014-01-04; Просмотров: 1040; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |