c-Programm Hilfe



  • EOP-... schrieb:

    Hab jetzt nicht die Möglichkeiten, das nachzuvollziehen, aber was passiert wohl, wenn ich '1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" oder 'D' oder sowas eingebe?

    Meinst du in einer Zeile die ganzen 1en eingeben?

    Das würde nicht funktionieren, da man pro Zeile nur 9 Ziffern eingeben kann.



  • Max Mustermannnn schrieb:

    Das würde nicht funktionieren, da man pro Zeile nur 9 Ziffern eingeben kann.

    Nein.
    scanf liest bei %d Dezimalzahlen ein.
    Die können durchaus aus mehreren Ziffern bestehen.

    Aber eine fehlerhafte Eingabe sollte erstmal nicht dein Problem sein.



  • DirkB schrieb:

    Max Mustermannnn schrieb:

    Das würde nicht funktionieren, da man pro Zeile nur 9 Ziffern eingeben kann.

    Nein.
    scanf liest bei %d Dezimalzahlen ein.
    Die können durchaus aus mehreren Ziffern bestehen.

    Aber eine fehlerhafte Eingabe sollte erstmal nicht dein Problem sein.

    Mein Problem ist ja nur, dass ich das Programm immer ein wenig umschreiben muss, bevor ich z.B von einem 3x3 Quadrat auf ein 9x9 Quadrat wechsle.



  • DirkB schrieb:

    Schleifen.
    Schon für die Zeilen hättest du eine Schleife nehmen müssen.
    Dann kannst du dadrin auch noch eine Schleife für die einzelnen Werte machen.



  • Wie DirkB schon geschrieben hat. Du hast den Code für deine Eingabe praktisch vor der Nase:

    for (j = 0; j<dim; j++) 
      { 
        int summe = 0; 
        int i = 0; 
       // i-te Zeile 
        for (i = 0; i<dim; i++) 
          summe = summe + quadrat [i][j]; 
        spaltensumme [j] = summe; 
      }
    

    ^^^^ Das hast du im Code selbst. Das heißt, du musst ja wissen, dass du durch alle indices durchgehst. Warum nicht so deine Eingaben abfragen?



  • Bierkorken schrieb:

    Wie DirkB schon geschrieben hat. Du hast den Code für deine Eingabe praktisch vor der Nase:

    for (j = 0; j<dim; j++) 
      { 
        int summe = 0; 
        int i = 0; 
       // i-te Zeile 
        for (i = 0; i<dim; i++) 
          summe = summe + quadrat [i][j]; 
        spaltensumme [j] = summe; 
      }
    

    ^^^^ Das hast du im Code selbst. Das heißt, du musst ja wissen, dass du durch alle indices durchgehst. Warum nicht so deine Eingaben abfragen?

    Was muss ich dann mit den ganzen Eingabefenster machen?

    Weiß nicht wirklich, wie ich da anfangen soll...



  • Nur nochmal als Tipp. Sieh dir mal eine deiner mehrfach gleich vorhandenen Zeilen an:

    scanf("%d", &quadrat[0][0] );
    

    Oder die indices mal anders dargestellt:

    scanf("%d", &quadrat[i][j] );
    

    Setz das mal im Zusammenhang mit dem Schleifenkonstrukt, dass du weiter unten im Code bereits verwendet hast.

    for (j = 0; j<dim; j++) 
      { 
        for (i = 0; i<dim; i++)
        {
          // Du erhälst hier die Indices i / j im Rahmen der Größe deines Quadrates
          // Wie wäre es hier mit deiner Eingabefunktion?
        }
      }
    


  • Bierkorken schrieb:

    Nur nochmal als Tipp. Sieh dir mal eine deiner mehrfach gleich vorhandenen Zeilen an:

    scanf("%d", &quadrat[0][0] );
    

    Oder die indices mal anders dargestellt:

    scanf("%d", &quadrat[i][j] );
    

    Setz das mal im Zusammenhang mit dem Schleifenkonstrukt, dass du weiter unten im Code bereits verwendet hast.

    for (j = 0; j<dim; j++) 
      { 
        for (i = 0; i<dim; i++)
        {
          // Du erhälst hier die Indices i / j im Rahmen der Größe deines Quadrates
          // Wie wäre es hier mit deiner Eingabefunktion?
        }
      }
    

    Geht es so in die richtige Richtung:

    for (i=0; i<dim; i++)
      {
        for (j = 0; j<dim; j++)
          {
           printf("Eingabe der %i Zeile: ");
           scanf("%d", &quadrat[i][j] );
          }
      }
    
      for (j=0; j<dim; j++)
      {
        for (i=0; i<dim; i++)
          {
            printf("Eingabe der %i Zeile: ");
            scanf("%d", &quadrat[i][j]);
          }
      }
    
    [/quote]
    

    Das mit dem printf geht noch nicht wirklich



  • Du musst printf auch noch den Wert mitgeben, den du ausgeben möchest.

    Warum machst du das zweimal?

    Das printf ist in der falschen Zeile.
    Z.Zt wird es bei jedem Element ausgegeben. Im Text (von printf ) steht aber nur etwas von Zeile.



  • DirkB schrieb:

    Du musst printf auch noch den Wert mitgeben, den du ausgeben möchest.

    Warum machst du das zweimal?

    Das printf ist in der falschen Zeile.
    Z.Zt wird es bei jedem Element ausgegeben. Im Text (von printf ) steht aber nur etwas von Zeile.

    printf("Geben sie das Ergebnis des Quadrates ein: ");
      scanf("%d", &ergebnis);
    
      // Eingabe der Zeilen
      for (i=0; i<dim; i++)
      {
        // Eingabe der Spalten
        for (j=0; j<dim; j++)
        {
          printf("Eingabe %d. Zeile, %d. Spalte: ", i+1, j+1);
          scanf("%d", &quadrat[i][j] );
        }
      }
    [/quote]
    

    Habs jetzt


Anmelden zum Antworten