Одномерный массив. С++ Дан вектор x = {x0, . xn-1}, m и k заданные целые числа....

0 голосов
43 просмотров

Одномерный массив. С++
Дан вектор 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}.


Информатика (15 баллов) | 43 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

//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<<"Enter m:";<br>         cin>>m;
         cout<<"Enter array:"<<endl;<br>         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<<"Final array"<<endl;<br>         for(int i=0;i          cout<<ar[i]<<' ';<br>        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<<"Enter k:";<br>         cin>>k;
         cout<<"Enter array:"<<endl;<br>         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<<"Final array"<<endl;<br>         for(int i=0;i          cout<<ar[i]<<' ';<br>        cin.get();
        cin.get();
 return 0;
}

(38.6k баллов)