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

Ответы 1

  • //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;}
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years