C++ Дан массив a a из n n элементов. Перенесите последний элемент массива на место k k -го элемента. При этом k k -й, (k+1)
C++ Дан массив a a из n n элементов. Перенесите последний элемент массива на место k k -го элемента. При этом k k -й, (k+1) (k+1) -й, ... , предпоследний элементы сдвинуть вправо на 1 позицию. Формат входных данных С клавиатуры вводится натуральное число n n ( n≤100 n≤100 ) — размер массива. Во второй строке вводятся n n элементов массива через пробел. Все элементы целые и не превосходят по модулю 100 100 . В последней строке вводится одно натуральное число k k (1≤k (1≤k . Формат выходных данных Необxодимо вывести измененный массив.
#include <iostream> #include <random> #include <ctime> using namespace std;
mt19937 gen(time(0)); uniform_int_distribution<> uid(0, 19); void replace(int *a, int n, int k) { int last = a[n]; for (int i = n - 1; i >= k; i--) { a[i + 1] = a[i]; } a[k] = last; }
int main() { int n = 0, k = 0; cin >> n; int *a = new int[n]; if (n <= 100) { for (int i = 0; i <= n; i++) { a[i] = uid(gen); cout << a[i] << " "; } cout << endl; cin >> k; if (k <= n) { replace(a, n, k - 1); for (int i = 0; i <= n; i++) { cout << a[i] << " "; } } else { cout << "Error" << endl; } } else { cout << "Error!" << endl; } delete[] a; return 0; }