array in c

Neue Frage »

Auf diesen Beitrag antworten »
lilli. array in c

Hey,
wir haben folgendes c code fragment gegeben und müssen die werte angeben. rauskommen soll: 0,1,2,42,42,42, ich verstehe die lösung leider nicht, wie kommt man überhaupt auf 42?

int i,j;
int counter = 0;
int array[2][3];
for (i = 0; i < 2; i++)
for (j = 0; j < 3; j++)
array[i][j] = ++counter;
array[i][j] = counter--;

Geben Sie die Werte der Feldelemente an nach Beendigung der Schleifen an.

array[0][0]=
array[0][1] =
array[0][2] =
array[1][0] =
array[1][1] =
array[1][2] =
 
Auf diesen Beitrag antworten »
as_string

Hallo,

also die Zahlenfolge stimmt so überhaupt nicht... Zuerst wird das array mit Werten von 1 bis 6 gefüllt (ohne 0) und dann wird in der Zeile:
code:
1:
array[i][j] = counter--; 

hinter das Array geschrieben, was im Normalfall zu einem Absturz führen müsste...

Also irgendwas stimmt da gar nicht. Vielleicht irgendwelche Klammern vergessen?

Gruß
Marco
Auf diesen Beitrag antworten »
lilli.

nein hab das schon richtig abgetippt. soll ja nu en Fragment darstellen.
Auf diesen Beitrag antworten »
eulerscheZahl

Ich habe das Programm ausgeführt, wie erwartet keine 42.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
#include <stdio.h>

int main()
{
	int i,j;
	int counter = 0;
	int array[2][3];
	for (i = 0; i < 2; i++)
		for (j = 0; j < 3; j++)
			array[i][j] = ++counter;
	array[i][j] = counter--; //schreiben in nicht reservierten Speicher

	printf("array[0][0] = %d\n", array[0][0]); //1
	printf("array[0][1] = %d\n", array[0][1]); //2
	printf("array[0][2] = %d\n", array[0][2]); //3
	printf("array[1][0] = %d\n", array[1][0]); //4
	printf("array[1][1] = %d\n", array[1][1]); //5
	printf("array[1][2] = %d\n", array[1][2]); //6
}
 
Auf diesen Beitrag antworten »
lilli.

aber was macht denn der counter--?
bringt er nicht alles auf 1?

array[0][0] =1
array[0][1] =1
array[0][2] =1
array[1][0] =1
array[1][1] =1
array[1][2] =1
Auf diesen Beitrag antworten »
eulerscheZahl

counter-- steht außerhalb der Schleife, daher auch die Frage von Marco, ob du eine Klammer vergessen hast.
So z.B.
code:
1:
2:
3:
4:
5:
6:
for (i = 0; i < 2; i++)
    for (j = 0; j < 3; j++)
    {
        array[i][j] = ++counter;
        array[i][j] = counter--; 
    }
Auf diesen Beitrag antworten »
lilli.

achso ne, da war wirklich keine klammer. ok danke sehr . smile
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »