Информатика, опубликовано 2018-08-22 23:25:47 by Гость

Одномерный массив. С++ Дан вектор x = {x0, . xn-1}, m и k заданные целые числа. Осуществить циклический сдвиг компонент этого вектора а) влево на m позиций, т. е. получить вектор {xm+1, xm+2, . xn-1, x0, . xm}, б) в право на k позиций, т. е. получить вектор{xn-k+1, xn-k+2, . xn-1, x0, . xn-k}.

Ответ оставил Гость

//Dev-C++ 4.9.9.2

//а
#include
using namespace std;

const int n=10;

int main(){
         int ar[n];
         int arsub[n];
         int m=0;
         cout         cin>>m;
         cout         for(int i=0;i          cin>>ar[i];
         for(int i=0;i          arsub[i]=ar[i];
         for(int i=0;i          ar[i]=ar[i+m];
         for(int i=0;i          ar[i+(n-m)]=arsub[i];
         cout         for(int i=0;i          cout        cin.get();
        cin.get();
 return 0;
}

//б
#include
using namespace std;

const int n=10;

int main(){
         int ar[n];
         int arsub[n];
         int k,k1=0;
         cout         cin>>k;
         cout         for(int i=0;i          cin>>ar[i];
         for(int i=n-k;i          arsub[k1]=ar[i];k1++;}
         for(int i=n;i>=k;i--)
          ar[i]=ar[i-k];
         for(int i=0;i          ar[i]=arsub[i];
         cout         for(int i=0;i          cout        cin.get();
        cin.get();
 return 0;
}

Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.

Форма вопроса доступна на полной версии этой страницы.