Одномерный массив. С++ Дан вектор x = {x0, . xn-1}, m и k заданные целые числа. Осуществить циклический сдвиг компонент этого вектора а) влево на m позиций, т. е. получить в
Одномерный массив. С++ Дан вектор 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 <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; }
Не нашли ответ?
Похожие вопросы