Permalänk

c++ problem! nybörjare!

Hej, behöver lite hjälp med min kod. Det är en array som skall visa 10 siffror så ska varje siffra skjutas till åt höger sida. Men efter 5 rotationer så visar den siffror från ramminnet.

const int SIZE = 10; double c[SIZE]; double option; int seq[SIZE]= {0};

for(int i = 0; i < SIZE; i++){ cin >> c[i];

for (int j=1; j <= option; j++) { cout << "rotation seq "<< j; for(int i = 0; i < SIZE; i++){

Permalänk
Medlem

Vad menar du med att varje siffra ska "skjutas till åt höger sida"?

Visa signatur

C>++

Permalänk

Visar ett exempel med siffrorna 1-10 efter 4 rotationer. Problemet är att efter 5 rotationer så byts 0 ut mot t.ex 12312415^-12.

0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8
0 0 0 1 2 3 4 5 6 7
0 0 0 0 1 2 3 4 5 6

Permalänk
Medlem

Tror du fattas lite kod i din post, den sista for-loopen är inte complete.

Permalänk

Lite ny här så blev lite konstigt.

Men här är den kompletta

for (int j=1; j <= option; j++) { cout << "Sequence after roatation "<< j; for(int i = 0; i < SIZE; i++){ cout << " " << " " << c[i-j]; } cout << endl; }

Permalänk
Medlem

for(int i = 0; i < size; i++) { cout << endl; for(int c = 0; c < size; c++) { cout << seq[(size-(i-c))%size] << " "; } }

Permalänk

Det ska vara nollorna som ökas vid varje steg. inte
10 2 3 4 5 6 7 8 9
9 10 2 3 4 5 6 7 8

Permalänk
Avstängd

Förstår inte uppgiften riktigt tror jag. Du har en array med alla 10 siffror? {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
I varje tur i loopen så skall alla värden flyttas ett steg åt höger och sista elementet skall bli det första? Korrekt?

Om så är fallet, se till att ha två st arrays där du tar värdet från den gamla till den nya och sätter in värdena ett steg till höger fram till sista elementet som du sätter i 0:e elementet i den nya arrayen.

Något i stil med:

private int[] moveToTheRight(int[] oldArray){ int [oldArray.length] newArray; for(int i = 0; i < oldArray.length; i++){ if(i + 1 == oldArray.length){ newArray[0] = oldArray[i]; }else{ newArray[i+1] = oldArray[i]; } } } public void stepper(){ int [] oldArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int numberOfSteps = 5; for(int i = 0; i < numberOfSteps; i++){ oldArray = moveToTheRight(oldArray); } }

Visa signatur