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

djamilaalieva djamilaalieva    3   31.07.2019 15:10    0

Ответы
Мария1111121 Мария1111121  28.09.2020 17:58
//Dev-C++ 4.9.9.2

//а
#include <iostream>
using namespace std;

const int n=10;

int main(){
         int ar[n];
         int arsub[n];
         int m=0;
         cout<<"Enter m:";
         cin>>m;
         cout<<"Enter array:"<<endl;
         for(int i=0;i<n;i++)
          cin>>ar[i];
         for(int i=0;i<m;i++)
          arsub[i]=ar[i];
         for(int i=0;i<n-m;i++)
          ar[i]=ar[i+m];
         for(int i=0;i<m;i++)
          ar[i+(n-m)]=arsub[i];
         cout<<"Final array"<<endl;
         for(int i=0;i<n;i++)
          cout<<ar[i]<<' ';
        cin.get();
        cin.get();
 return 0;
}

//б
#include <iostream>
using namespace std;

const int n=10;

int main(){
         int ar[n];
         int arsub[n];
         int k,k1=0;
         cout<<"Enter k:";
         cin>>k;
         cout<<"Enter array:"<<endl;
         for(int i=0;i<n;i++)
          cin>>ar[i];
         for(int i=n-k;i<n;i++){
          arsub[k1]=ar[i];k1++;}
         for(int i=n;i>=k;i--)
          ar[i]=ar[i-k];
         for(int i=0;i<k;i++)
          ar[i]=arsub[i];
         cout<<"Final array"<<endl;
         for(int i=0;i<n;i++)
          cout<<ar[i]<<' ';
        cin.get();
        cin.get();
 return 0;
}
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика