Speichern von scanf-Werten in 2d Arrays



  • Ich möchte in C zuerst einlesen, wieviele Dreiecke der Nutzer eingeben will.
    Anschließend soll er so oft die 3 Seitenlängen eingeben, wie er zuvor Dreiecke angegeben hat.
    Meine Überlegung war es, die Anzahl der Dreiecke und die drei Seiten in einem 2d Array zu speichern.
    Am Ende des Programms will ich mir das Array zur Kontrolle noch einmal anzeigen lassen.

    So wie ich es hier aber geschrieben habe, bekomme ich nur irgendwelche Werte heraus und die Zeilen- / Spaltenanzahl ist immer 3*3..

    Bin totaler Anfänger und freue mich über alle Antworten 🙂
    Danke im Vorraus!

    int main()
    {
        int anzahl_dreiecke;
        int k = 3;
    
        printf("Please enter the number of triangles to check:");
        scanf("%d", &anzahl_dreiecke);
    
        int dreieck_array[k][anzahl_dreiecke];
    
        int loop = anzahl_dreiecke;
    
        while(loop > 0)
        {
            printf("Please enter the first number of the triplet:\n");
            scanf("%d", &dreieck_array[0][anzahl_dreiecke]);
            printf("Please enter the second number of the triplet:\n");
            scanf("%d", &dreieck_array[1][anzahl_dreiecke]);
            printf("Please enter the third number of the triplet:\n");
            scanf("%d", &dreieck_array[2][anzahl_dreiecke]);
            loop--;
        }
    
        for(int i = 0; i < 3; i++) {
            for(int j = 0; j < 3; j++) {
                printf("%d", dreieck_array[i][j]);
            }
            printf("\n");
        }
    
        return 0;
    }
    


  • Bei der Ausgabe verwendest du die Schleifenzähler als Index für dein Array.
    Bei der Eingabe gar nicht.

    Wundert dich das nicht?

    Tipp: du solltest die Indizes vertauschen.

    int dreieck_array[anzahl_dreiecke][k];
    

    Mit dem 1. Index sprichst du das Dreieck an, mit dem 2. die Ecken.



  • Ok , Wutz ist wohl gerade im Urlaub und mir ist langweilig. Also mach ich es:

    nur Deppen benutzen VLA


Log in to reply