Anfänger Fragen

Alex Großmann

Erfahrenes Mitglied
Hallo :)

Wir beschäftigen uns gerade im 2. Jahr einer Ausbildung mit .Net . Haben so zu sagen gerade damit angefangen.

Nun kam eine Übungsaufgabe die ich einfach nicht schaffe.. :

Schreiben Sie zuerst ein Feld mit 20 Elementen, generieren Sie in diesem für jedes Element eine Zufallszahl von 0-50.Anschließend soll der Benutzer eine Stellenzahl eingeben(...)

Das habe ich schon!

(...), welche dann das Feld um der Entsprechende Zahl nach Rechts rotieren lässt.

Ich schau wie ein "Schwein ins Uhrwerk"...selbst nach langen grübeln komme ich nicht drauf... könntet Ihr mir da bitte helfen?
Würde mich sehr freuen!!

grüße
Alex
 
C++/CLI? Nicht doch C#?

Jedenfalls, für C++/CLI:
Wenn das ursprüngliche Array arr heißt und um n Stellen nach rechts rotiert werden soll:
C++:
int i;
array<int>^ arr2 = gcnew array<int>(arr.Length);
for(i = 0; i < arr.Length; i++)
    arr2[(i + n) % arr.Length] = arr[i];
 
1000 Dank, das sieht sehr gut aus!

Ich würde es gern noch besser verstehen. Was genau macht:
Code:
arr2[(i + n) % arr.Length]

Nochmals vielen dank!
 
Hallo,

Meinst du was das % macht? Das ist der Modulo-Operator, der liefert den Rest einer Division zurück. i läuft durch das ganze Array, n gibt an um wieviele Stellen verschoben werden soll.
Wenn man sich das dann vorstellt bekommt man Werte von n bis i+n, da wir aber alle Werte die größer als i sind wieder von 0 weg haben wollen dividieren wir durch die Arraylänge und schauen uns den Rest an.
 

Neue Beiträge

Zurück