Napisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9 po wykonaniu programu ma mieć wartość t[i-2],element t[0] wartość t[8], a element t[1] wartość t[9]. Program ma używać tylko jednej tablicy i stosować pętlę for.
C ++


Odpowiedź :

Odpowiedź:

#include <iostream>

using namespace std;

int main() {

 int tablica[10],i,j,a,b,c,k;

 for (i=0;i<10;i++){

   cout<<"Podaj liczbę nr "<<i+1<<": ";

   cin>>tablica[i];}

 a=tablica[0];

 b=tablica[1];

 c=tablica[2];

 for (j=0;j<10;j++){

   if (j<7){

   tablica[j+2]=a;

   a=b;

   b=c;

   c=tablica[j+3];}

   else{

   tablica[9]=a;

   tablica[0]=b;

   tablica[1]=c;}}

 for (k=0;k<10;k++)

 cout<<tablica[k]<<" ";

}

Wyjaśnienie:

Zobacz obrazek Animaldk

Odpowiedź

Kod źródłowy w pierwszym załączniku, w drugim podałam jak wyglądają przykładowe wyniki uruchomienia.

Przykładowe wyniki uzyskałam na platformie replit.

Wyjaśnienie

Przy przesunięciu o 2 wymagane są tylko tylko dwie zmienne pomocnicze.

Zamiast zmiennej o nazwie shift można napisać przesunięcie, albo ewentualnie przesuniecie.

Wprawdzie można z 6. wiersza usunąć deklarację shift i wszędzie zamiast shift wpisać 2, ale tak nie powinno się robić.

Zobacz obrazek 0AB
Zobacz obrazek 0AB