Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Интересные и занимательные задачи по программированию > Интересные задачи по массивам!


Автор: CppDevelopeR 7.1.2008, 16:00
довольно таки интересные задачи по массивам:

(A) Напишите функцию int Search (double A[], int n, double x), которая находит в массиве double A[n] элемент, значение которого равно x. Функция возвращает индекс найденного элемента или -1, если такого элемента в массиве нет. Программа получает на вход количество элементов в массиве n, затем n целых чисел – элементы массива, затем число x и должна вывести индекс найденного элемента или число -1, если данный элемент в массиве отсутствует. 
(B) Напишите функцию int CountMax (double A[], int n), которая подсчитывает, сколько раз в массиве встречается значение, являющееся максимальным. Функция должна выполнять однократный просмотр массива. Программа получает на вход количество элементов в массиве n, затем n целых чисел – элементы массива и должна вывести единственное целое число – сколько раз в массиве встречается значение, равное максимальному. 
© Дан массив, состоящий из различных целых чисел. Определите второй по величине элемент этого массива. Напишите для этого функцию double SecondMax (double A[], int n). Функция должна выполнять однократный просмотр массива. 
(D) Напишите функцию double SecondMax (double A[], int n), которая находит второй по величине элемент в массиве – тот элемент, который будет наибольшим, если из массива удалить наибольший элемент, то есть для массивов {1, 2, 3, 4} и {1, 2, 3, 3} вторым по величине элементом будет 3. Функция должна выполнять однократный просмотр массива. 
(E) Напишите функцию double SecondMaxValue (double A[], int n), которая находит второе по величине значение в массиве – значение элемента, который будет наибольшим, если из массива удалить наибольший элемент и все ему равные, то есть для массива {1, 4, 3, 4} вторым по величине значением будет 3. 
(F) Даны два отсортированных массива: int A[n] и int B[m]. 
Объедините их в один отсортированный массив int C[n+m], то есть если A={1, 4, 6, 7}, B={2, 3, 5}, то C={1, 2, 3, 4, 5, 6, 7}. Оформите алгоритм в виде функции void merge (int A[], int n, int B[], int m, int C[]). Время работы алгоритма должно быть порядка n+m действий. 

Формат входных данных: число n, затем n возрастающих чисел – элементы первого массива, число m, затем m возрастающих чисел – элементы второго массива. Программа должна вывести n+m чисел, полученных объединением двух массивов в порядке возрастания. 

Пример: 

          Вход
          3
          1 5 7
          4
          2 4 4 5
          
          Выход
          1 2 4 4 5 5 7

 smile  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)