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одимо вывести измененный массив. примеры входные данные выходные данные 5 4 5 3 1 2 2 4 2 5 3 1
#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;
}