SilentHunter Geschrieben 16. Januar 2005 Geschrieben 16. Januar 2005 Hallo zusammen, ich hab bald Informatikprüfung und zur Vorbereitung wurde uns folgedes Programm gegeben mit der Frage welchen Wert das Prog ausrechnet. Das Ergebnis ist 84. Ich sitz nun seit zwei Tagen da un versuche auf das Ergebnis zu kommen. Aber ich komme jedesmal auf 83. Kann mir jemand erklären wir sich das zusammen rechnet? Mit diesen Vektoren hab ich irgendwie noch nicht wirklich gearbeitet. Danke im vorraus. #include<stdio.h> main() { int fred[5][7]; int i,j,k; k=4; for (i=0;i<5;i++) for (j=0;j<7;j++) { fred[j]=k; k=k+1; } k=0; for (i=3;i<4;i++) for (j=2;j<5;j++) k=k+fred[j]; printf("\n Ergebnis: %d \n",k); } Zitieren
Der Kleine Geschrieben 16. Januar 2005 Geschrieben 16. Januar 2005 Du summierts unten auf : fred[3][2]=27 fred[3][3]=28 fred[3][4]=29 in Summe : 84 Zitieren
tuxfriend Geschrieben 16. Januar 2005 Geschrieben 16. Januar 2005 Um das ganze mal etwas genauer auszuführen: Ich würde in diesem Fall am Ende des Programmes anfangen, um nicht unnötig viele Werte des Vektors ausrechnen zu müssen. Hier sagen dir die beiden Schleifen, dass du nur die Werte 2,3,4 des Arrays fred[3] brauchst. In der Schleife "for (j=0;j<7;j++)" wird die Variable k 7 Mal um den Wert 1 erhöht. Diese Schleife wird durch die Schleife "for (i=0;i<5;i++)" zunächst 3 Mal betreten. Also wird der Ursprungswert von k um 3*7 = 21 erhöht. Der Eingangswert von k beim vierten Durchlauf der Schleife "for (i=0;i<5;i++)", in dem das Array fred[3] gefüllt wird ist also 4+3*7 = 25. Jetzt muß noch bestimmt werden welche Werte die Elemente 2,3 und 4 des Arrays fred[3] in der Schleife "for (j=0;j<7;j++)" erhalten. Zunächsteinmal wird k für die Durchläufe j=0 und j=1 noch um 2 erhöht, hat also den Wert 27. Für die nächsten 3 Werte von j sind neben dem steigenden Wert von k auch die Werte der Arrayelemente interessant. Diese Entwickeln sich folgendermaßen: fred[3][2]=27; k=28 fred[3][3]=28; k=29 fred[3][4]=29; k=30 Weitere Werte benötigst du nicht, nur diese 3 Werte werden in den letzten beiden Schleifen aufsummiert und Ergeben den Wert 84. Ich hoffe das hilft dir weiter. Gruß Nils Zitieren
SilentHunter Geschrieben 16. Januar 2005 Autor Geschrieben 16. Januar 2005 tuxfriend danke das du dir die Mühe gemacht hast es Schritt für Schritt zu erklären. Besten dank dafür. Hat mir sehr geholfen. Danke auch der_kleine. Aber mit der Antwort allein wäre ich verwirter als vorher Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.