Arrays deklarieren



  • Hallo,

    bin noch C-Neuling und versuche im Moment einen Array zu deklarieren, der 8 Einträge hat und jeder dieser Einträge soll eine 8x8 Matrix sein.

    Wie kann ich das deklarieren? Geht das nur über Zeiger? Oder auch einfacher?

    Ich danke schon mal für eure Hilfe.



  • int matrizen[8][8][8];
    

    sollte eigentlich gehen.

    Wenn das nicht das richtige ist: Was genau hast du eigentlich vor?



  • Auch wenn es jetzt umständlich klingt, aber ich wollte es halt mal so versuchen:

    Ich beschäftige mich gerade mit dem 8-Damen-Problem und habe das ganze jetzt iterativ gelöst und möchte jetzt alle Lösungen speichern.

    Es gibt ja 92 Lösungen die ich jetzt alle speichern will um dann auf Bedarf z.b. die 50. Lösung auszugeben.

    Deshalb kam mir die Idee jede Lösungsmatrix in einem Array zu speichern (auch wenn das wahrscheinlich nicht gerade speicherschonend ist).

    Dazu bräuchte ich ja jetzt einen Array mit 92 Elementen, wobei jeder dieser Einträge eine 8x8 Matrix ist.

    Es geht sicher auch einfacher, aber an dieser Stelle hab ich mich gefragt wie ich so etwas deklarieren würde.



  • noch 'ne möglichkeit

    typedef int Matrix[8][8];
       ...
       Matrix MatrixArray[8];
    

    oder so...

    typedef struct __M {int e[64];} Matrix; 
       ....
       Matrix MatrixArray[8];
    

    :xmas2:



  • taralos schrieb:

    Auch wenn es jetzt umständlich klingt, aber ich wollte es halt mal so versuchen:

    Ich beschäftige mich gerade mit dem 8-Damen-Problem und habe das ganze jetzt iterativ gelöst und möchte jetzt alle Lösungen speichern.

    Aber für eine Lösung des Damen-Problems brauchst du definitiv keine 8x8 Matrix - da in jeder Spalte genau eine Dame steht, reicht eine Liste von 8 Werten völlig aus zur Speicherung (der i-te Wert gibt an, in welcher Zeile die Dame von Spalte i steht).



  • Die Aufgabe war in unserem Praktikum so gestellt, dass wir eine zweidimensionale Matrix verwenden sollen, damit wir nicht die Lösungen die im Netz zu Hauf stehen kopieren.

    Aber mir ist auch schon aufgefallen, dass eine 8x8 Matrix unnötig ist.


Log in to reply