kann jemand mir dieses Programm ausführlich erklären(C Programmiersprache) ?

...komplette Frage anzeigen Das Programm - (programmieren, C Programmiersprache)

3 Antworten

Das ist erst mal kein C-Programm, sondern eine Aufgabenstellung, die noch in C ausgedrückt werden soll.

Für das, was passieren soll, ist der Typ der Array-Elemente nicht wichtig; um es klarer zu machen, nehme ich ein Array von Zeichen:

Am Anfang sieht das Array so aus:

["A", "B", "C", "D", "E", "F"]

(wobei man wie beim Programmieren üblich mit dem Index 0 anfängt, d. h. arr[0] == "A", arr[1] == "B", ..., arr[5] == "F".)

Herauskommen soll das Array, bei dem die Elemente an geraden Positionen zyklisch nach rechts und die auf ungeraden Positionen zyklisch nach links verschoben sind, im Beispiel:

["E", "D", "A", "F", "C", "B"]

Die Lösung der Aufgabe ist eine C-Funktion, die aus dem ersten Array das zweite macht.

In der Aufgabenstellung fehlt aber, was passieren soll, wenn n ungerade ist. Vermutlich ist dieser Fall einfach nicht vorgesehen; ich würde dann eine Ausnahme schmeißen oder so was.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich fang mal ganz von vorne an, da ich nicht weiss wie sehr du dich auskennst. Ein Array ist nichts anderes als ein Datenfeld mit einer bestimmten Anzahl von Elementen, erkennen kann man es an den eckigen Klammern hinter dem Namen.

Ein Array der Groeße 10 hat die Felder 0-9 (das erste Feld hat den Index 0, das zweite den Index 1,etc. also:
array[0]
array[1]
...
array[9]

Man beschreibt ein array an einer beliebigen stelle x mit:

arr[x] = 1 (beliebige Zahl)
wobei das auch mit einer Zahl aus dem Array geht, also z.b. stelle 2 an stelle 1:
arr[1]=arr[2]

Du sollst bei dem Programm eine Liste von Zahlen (int array, int ist ein Datentyp für ganze Zahlen) mit dem namen arr übergeben, und eine Zahl n, die angibt wieviele Zahlen in dem Array sind, bei dem Beispiel von mir oben wäre es 10.
Dann werden wie schon dort erklärt alle Werte auf einer geraden Position um 2 nach rechts verschoben (stelle 0 an stelle 2, stelle 2 an stelle 4, bis zu stelle n-2(4. letzte stelle), die wird dann auf die stelle 0(erste) gesetzt.

Anschließend das gleiche für die ungeraden nur umgekehrt (n-1 auf n-3, bei 10 wäre es also von position 10-3 (7) auf Position n-1(9),etc.)

Ich hoffe das ist verständlich erklärt, wenn nicht, versuch zu erklären was du nicht verstehst, ist über schreiben etwas schwierig.

Gruß

Antwort bewerten Vielen Dank für Deine Bewertung

also 

void array_modify (int arr[], int n){

if (n % 2 == 0){

arr[0] = arr[2] ;

}

else{

arr[3] = a[1] ;

}

ist das richtig oder Quatsch ?? kann jemand mir weiter helfen ??

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?