mehrdimensionales Array



  • Tag die Damen und herren...

    und zwar habe ich ein problem mit einem mehrdimensionalen arrays..

    wenn ich z.b. ein array

    int zahlen[10][5][10]
    

    initialisiere, habe ich ein 10*5*10 felder großes feld, soweit klar...

    mein kleineres problem, wie stell ich mir ein solches array am besten vor?!
    wie ein xyz- koordinatensystem mit 1 er abstufung ?!

    ok, wenn ich mir das nun so vorstelle, woher weiß ich dann, welche zahl welchem feld zugeordnet ist??
    z.b.

    int zahlen [3][2][2] = {-11, 66, 0, -9044, 5, 6, 1
                              -7, 9, 10, 101, -23}
    

    welche Zahl wurde nun welchem feld zugeordnet, das ist meine eigentliches problem, ich weiß es nicht...
    welche regel gilt in diesem fall ?
    ich hoffe ihr könnt mir das kurz verraten, ich danke euch 🙂

    MFG



  • Vorstellen kannst du dir das so, wie du willst und wie du es brauchst. Mal mag es sinnvoll sein, es sich als 3dimensionalen Raum vorzustellen und die Indizes entsprechen den Ortskoordinaten. In diesem Fall ist es egal, ob das erste x, das zweite y und das dritte z oder irgendwie anders rum ist. Du musst das Array nur an jeder Stelle gleich behandeln. 😉
    Für andere Zwecke kann es sinnvoller sein, sich das als Baum vorzustellen. Das heißt du betrachtest die erste Dimension als oberste Ebene (ein Baum kann mehrere Wurzeln haben!) und suchst dir dort das richtige aus, dann ist der erste Index fest. Dann steigst du hinab auf die zweite Ebene, suchst dir dort das richtige raus...

    Wie du dir das mehrdimensionale Array vorstellen sollst, kann also je nach Anwendungszweck völlig unterschiedlich sein.



  • int zahlen [3][2][2] = {-11, 66, 0, -9044, 5, 6, 1,
                              -7, 9, 10, 101, -23};
    

    So werden die dann eingetragen:

    zahlen[0][0][0] = -11
    zahlen[0][0][1] = 66
    zahlen[0][1][0] = 0
    zahlen[0][1][1] = -9044
    zahlen[1][0][0] = 5
    zahlen[1][0][1] = 6
    zahlen[1][1][0] = 1
    zahlen[1][1][1] = -7
    zahlen[2][0][0] = 9
    zahlen[2][0][1] = 10
    zahlen[2][1][0] = 101
    zahlen[2][1][1] = -23

    Nochmal anders sortiert:

    zahlen[0][0][0] = -11
    zahlen[1][0][0] = 5
    zahlen[2][0][0] = 9
    zahlen[0][1][0] = 0
    zahlen[1][1][0] = 1
    zahlen[2][1][0] = 101
    zahlen[0][0][1] = 66
    zahlen[1][0][1] = 6
    zahlen[2][0][1] = 10
    zahlen[0][1][1] = -9044
    zahlen[1][1][1] = -7
    zahlen[2][1][1] = -23

    Gruß,
    DC



  • @ don cartso

    ok, vielen danke, das hilft mir weiter.
    damit wäre das thema erledigt... 😃


Anmelden zum Antworten