Witam,
mam za zadanie napisać program który przesuwa element tablicy w prawo i w lewo o jeden. Ostatni element jest tracony a pierwszy powinien przyjąć wartość 0. Jak dotąd kod na przesuwanie tablicy w prawo działa poprawnie, oto on:
#include <iostream>
#include <conio.h>
using namespace std;
const zakres = 4;
int temp[zakres] ;
int tab[zakres];
int main()
{
//------- przykladowe wartosci tablic -------
tab[0] = 5;
tab[1] = 9;
tab[2] = 2;
tab[3] = 5;
tab[4] = 1;
//-------------------------------------------
//tutaj tablice maja te same wartosci. Nie mozna ich zmieniac wewnatrz petli
//bo jedno wykonanie petli to JEDEN TAKT - aby je zmienic potrzebna jest nowa petla
cout << "Elementy tablicy przed przesunieciem w prawo: " <<endl;
for (int i = 0; i<=zakres; i++) //od zera bo numeracja tablicy zaczyna sie od 0
{
temp[i] = tab[i]; //tablica temp ma takie same wartosci
cout << "tab[" << i << "] = " << tab[i] << "\t";
}
cout << endl << endl << "Elementy tablicy po przesunieciu w prawo: " << endl;
for (int j = 0; j<=zakres; j++)
{
// if (j == 0) tab[0] = temp[4];
// if (j == 4) tab[4] = 0;
tab[j] = temp[j-1]; //przesuniecie w prawo
cout << "tab[" << j << "] = " << tab[j] << "\t";
}
getch();
return 0;
}
natomiast wzorując się na tym samym kodzie dzieją się "dziwne" rzeczy gdy chcę przesunąć tablicę w lewo:
#include <iostream>
#include <conio.h>
using namespace std;
const zakres = 4;
int temp[zakres];
int tab[zakres];
int main()
{
//------- przykladowe wartosci tablic -------
tab[0] = 0; tab[1] = 1; tab[2] = 2; tab[3] = 3; tab[4] = 4;
//-------------------------------------------
//tutaj tablice maja te same wartosci. Nie mozna ich zmieniac wewnatrz petli
//bo jedno wykonanie petli to JEDEN TAKT - aby je zmienic potrzebna jest nowa petla
cout << "Elementy tablicy przed przesunieciem w lewo: " <<endl;
for (int i = 0; i<=zakres; i++) //od zera bo numeracja tablicy zaczyna sie od 0
{
temp[i] = tab[i]; //tablica temp ma takie same wartosci
cout << "tab[" << i << "] = " << tab[i] << "\t";
}
for (int k = 0; k<=zakres; k++)//petla gdzie mam podglad na tablice TEMP (petla nie jest konieczna)
{
cout << "TEM[" << k << "] = " << temp[k] << "\t";
}
cout << endl << endl << "Elementy tablicy po przesunieciu w lewo: " << endl;
for (int j = 0; j<=zakres; j++)//przywpisywanie i przesowanie
{
tab[j] = temp[j+1]; //przesuniecie w lewo
cout << "tab[" << j << "] = " << tab[j] << "\t";
}
getch();
return 0;
}
Nie wiem dlaczego tablica 3 jest już zerowana a nie przyjmuje wartości 4 ;/