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

Ksenia2004bi Ksenia2004bi    1   06.09.2019 06:20    30

Ответы
nastyakostikov1 nastyakostikov1  06.10.2020 20:45
#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;
}
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика