Сдвинуть циклическим сдвигом все элементы массива - C#
Формулировка задачи:
Задан массив действительных чисел а1, а2,...,а20. Сдвинуть циклическим сдвигом все его элементы так, чтобы максимальный элемент стоял на первом месте.
Решение задачи: «Сдвинуть циклическим сдвигом все элементы массива»
textual
Листинг программы
#include <iostream>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <cmath>
template < typename Iter >
void dump(Iter first, Iter last)
{
while (first != last)
{
std::cout << *first++;
std::cout << std::endl;
}
}
int main()
{
const int size = 20;
double d[size];
std::srand(std::time(nullptr));
for (int i = 0; i < size; i++)
{
d[i] = std::sin(std::rand());
}
dump(std::cbegin(d), std::cend(d));
std::rotate(std::begin(d), std::max_element(std::begin(d), std::end(d)), std::end(d));
std::cout << "+-----+" << std::endl;
dump(std::cbegin(d), std::cend(d));
#ifdef _MSC_VER
std::system("pause");
#endif
return 0;
}