Informatică, întrebare adresată de ZUMAA, 9 ani în urmă

Permutarea vectorului cu p pozitii spre stanga/dreapta


ZUMAA: permutare circulara si in c++ daca se poate
stefcrs: este ceva ce nu-ti place la rezolvarea mea de ai dat 4 stele? spune-mi ca voi reveni cu modificari daca vrei

Răspunsuri la întrebare

Răspuns de stefcrs
28
#include <iostream>
using namespace std;
int n, p, v[100], a[100], c;
int main ()

   cin >> n >> p >> c;   // c primeste valoarea 1 pentru stanga si 2 pentru //dreapta
   for (int i = 1; i <= n; ++i)
   {
     cin >> v[i];
     a[i] = v[i];
   }
   
   if (c == 1)
      for (int i = 1; i <= n; ++i)
      {
          int x = (i + p) % n;
          if (x == 0) x = n;
          v[i] = a[x];
       }
   
    else
       for (int i = 1; i <= n; ++i)
       {
          int x = i - p;
          if (x <= 0) x += n;
          v[i] = a[x];
        }
 
     for (int i = 1; i <= n; ++i)
         cout << v[i] << " ";
     
    return 0;
}

Alte întrebări interesante