Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- int* find_min(int*, int);
- int main()
- {
- int m,k;
- cin >> m >> k;//Вводим размер массива и k
- int *a = new int[m];//Создаем массив
- for(int i = 0;i<m;++i)
- a[i] = rand()%10;//Забиваем рандомом
- for(int i = 0;i<m;++i)
- cout << a[i] << " ";//Выводим посмотреть
- cout << endl;
- int *p = find_min(a, m);//Получаем ссылку на нужный элемент массива
- *p = k;//Заменяем
- for(int i = 0;i<m;++i)
- cout << a[i] << " ";//Выводим новый массив
- delete[] a;//Удаляем
- return 0;
- }
- /** Искать будем следующим образом
- * Скопируем массив
- * Отсортируем новый массив
- * В новом массиве будем искать первый повторяющиеся элементы
- * Если нашли - запоминаем
- * Если не нашли - берем минимальный(первый)
- * Ищем элемент в исходном массиве
- * и возвращаем ссылку на этот элемент
- */
- int* find_min(int* a, int m)
- {
- int *p = new int[m], k;
- for(int i = 0; i<m; ++i)
- p[i] = a[i];
- for(int i = 0;i<m; ++i)
- for(int j =0; j< m-i-1; ++j)
- if(p[j]>p[j+1])
- swap(p[j],p[j+1]);
- int i =0;
- while(i<m-1 && p[i] != p[i+1]) ++i;
- if(p[i]!=p[i+1])
- k = p[0];
- else
- k = p[i];
- delete[] p;
- for(int i = 0;i<m;++i)
- if(a[i] == k) return (a+i);
- }
Add Comment
Please, Sign In to add comment