Arrayanomalie?
-
Hiho.
Ich habe ein meiner Meinung nach merkwürdiges problem.
Ich habe einen Teil eines Programm ausgelagert, weil ich dort einen Fehler vermutete und genau so war es. Ich kann jetzt genau sagen, was er falsch macht aber bei keine Willen warum.Das Programm ist folgendes:
ich initialisiere einen Array von 10x10 Elementen.dieser wird dann 2x durch eine Verschachtelte FOR-Schleife geschickt, dabei werden alle Elemente durchlaufen:
i--> n 0 1 2 3 ... | 1 V 2 3 ...So. Beim ersten mal wird jedem Element in A ein zufälliger Wert von 0 bis 9 zugewiesen und ausgegeben. Das Ergebnis ist korrekt.
In der zweiten Schleife wird der Array nochmals ausgegeben.
Doch nun ist das Ergebnis ein anderes, ALLE Elemente mit gleichem n-Wert stimmen überein, und zwar mit dem letzen geschriebenen Wertereihe des vorherigen Arrays, ein Beispiel:6432578916 6666666666 4678635482 2222222222 6848431321 1111111111 6546874684 4444444444 6464986431 Wird zu: 1111111111 6849684563 3333333333 6468546846 6666666666 6846848498 8888888888 6846846546 6666666666 6884684684 4444444444Die letzte Ziffer wird also quasi immer weiter wiederholt.... warum?
Es ist in der 2. Schleife übrigens egal, was bei A[i,n] für i steht. Der Array scheint wirklich diesen Inhalt zu haben...anmerkung: verwendet wurde der TurboC compiler.
Das Programm:
#include <stdio.h> #include <dos.h> #include <conio.h> #include <stdlib.h> int main() { int A[10,10]; int i,n; while(1) { for(i=0;i<10;i++){ for(n=0;n<10;n++){ A[i,n] = random(10); gotoxy(i+1,n+1); printf("%i",A[i,n]); }} for(i=0;i<10;i++){ for(n=0;n<10;n++){ gotoxy(i+20,n+1); printf("%i",A[i,n]); }} delay(1000); } return 0; }
-
Hi,
ein Array[x,y] ist kein 2D-Array. Das muss so aussehen Array[x][y]. Beim Lesen/Schreiben ebenfalls. Der Wert des (Komma),-Operator-Ausdrucks, ist immer der, der ganz rechts steht, deswegen passieren merkwürdige Dinge bei dir ....
-
arrgg
gott lass Hirn regnen.
da hab ich woh was mit Basic durcheinander geschmissen....
jetzt muss ich nur noch untersuchen, warum die erste ausgabe funktioniert
dank dir!