Input/Output Iteration in Feldern

Hurricane

Mitglied
Moin Leute,

ich habe folgendes Problem.
Bei dem nachstehendem Programmcode werden die Werte von den Feldern verändert, jedoch bin ich mit der 2. Schleife überfordert bzw. ich weiß nicht, wie man auf das Ergebnis kommt.

Codeschnipsel:

int [] p = {1,4,0,3,6,2,7,5};
int [] c = {0,0,0,0,0,0,0,0};
int [] q = {0,0,0,0,0,0,0,0};
for (int i=0;i<8;i++)
c[p] = c[p] + 1;
for (int i=0;i<8;i++)
q[p] = 1;

Das Ergebnis der 1. Scheife ist einfach {1,1,1,1,1,1,1,1}, soweit ist mir alles klar. Zur Kontrolle habe ich es in Eclipse eingegeben und für die 2. Schleife bekomme ich {2,0,5,3,1,7,4,6} heraus, aber warum? Bin gerade überfordert und habe ein Brett vorm Kopf -.-

Liebe Grüße
 

Meniskusschaden

Top Contributor
Meines Erachtens ist das nicht compilierbar, weil diese beiden Zeilen fehlerhaft sind:
Java:
c[p] = c[p] + 1;
q[p] = 1;
Hier wird p als Index für die Arrays c und q benutzt. p ist aber selbst ein Array und kann deshalb nicht als Index verwendet werden.
 

Hurricane

Mitglied
Oh fuck, es sollte auch

int [] p = {1,4,0,3,6,2,7,5};
int [] c = {0,0,0,0,0,0,0,0};
int [] q = {0,0,0,0,0,0,0,0};
for (int i=0;i<8;i++)
c[p i ]= c[p i ] + 1;
for (int i=0;i<8;i++)
q[p i ] = i;

heißen! Stellt euch noch eckige Klammern bei den i's vor...Irgendwie mag er die Formatierung nicht...
Sorry!
 

InfectedBytes

Top Contributor
benutz code tags, andernfalls wird [i] als kursivformatierung genutzt.
[code=java] hier dein code [/code]

oder einfach auf den Einfügen button(links vom disketten symbol) klicken und dann Code
 

Hurricane

Mitglied
Ahh okay, danke sehr.
Java:
int [] p = {1,4,0,3,6,2,7,5};
int [] c = {0,0,0,0,0,0,0,0};
int [] q = {0,0,0,0,0,0,0,0};
      
for (int i = 0; i<8; i++)
    c[p[i]] = c[p[i]]+1;
for (int i = 0; i<8; i++)
    q[p[i]] = i;
 
Zuletzt bearbeitet von einem Moderator:

JStein52

Top Contributor
Ist das denn nun dein Code ?

Code:
int [] p = {1,4,0,3,6,2,7,5};
int [] c = {0,0,0,0,0,0,0,0};
int [] q = {0,0,0,0,0,0,0,0};
for (int i=0;i<8;i++)
c[ i ]= c[ i ] + 1;
for (int i=0;i<8;i++)
q[ i ] = i;

Edit: ok, hat sich erledigt
 

JStein52

Top Contributor
Aber was genau verstehst du denn da nicht ? Das Ergebnis ist doch richtig.
p[0] = 1 --> q[1] = 0
p[1] = 4 --> q[4] = 1
p[2] = 0 --> q[0] = 2
usw.
 

Hurricane

Mitglied
Dass das Ergebnis richtig ist, bezweifle ich ja auch gar nicht, jedoch will es mir partout nicht in den Kopf gehen, wie man darauf kommt.
Ich habe es eigentlich fast, aber der Gedanke möchte sich einfach nicht manifestieren...

Edit: Habe es und schlage jetzt 'ne Weile meinen Kopf gegen die Wand. Aber vielen Dank euch!
 

Ähnliche Java Themen

Neue Themen


Oben