Dreiecksmatrix befüllen



  • Guten Tag,

    ich habe ein Problem bei dem ich leider nicht weiter kommen, ich soll bei einer Dreiecksmatrix (10x10) mittels einer for Schleife die linke obere hälfte mit Zahlen von 1 aufwärts füllen und den Rest mit Nullen. Wie gehe ich sowas an. Den bisherigen Quellcode mit meinem Ansatz habe ich mal angehängt.

    Über Antworten würde ich mich sehr freuen!

    gruß

    derWoodi

    #include
    using namespace std;
    float matrix [10][10];
    int main()
    {
    for (int zeile=0; zeile <=9; zeile ++)
    {
    for (int spalte=0; spalte <=9; spalte ++)
    {
    matrix [zeile][spalte] = 0;
    }
    } // Setzt alle Zeilen und Spalten = 0

    int a=1;
    for (int zeile=0; zeile <=9; zeile ++)
    {
    for (int spalte=0; spalte <=9; spalte ++)
    {
    a++;
    }
    }

    for (int zeile=0; zeile <=9; zeile ++)
    {
    for (int spalte=0; spalte <=9; spalte ++)
    {
    cout << matrix [zeile][spalte] << "\t";}

    {
    cout <<"\n";
    }
    }
    }



  • Bist du sicher, dass die 'linke Obere' und nicht die 'linke Untere', bzw.
    'rechte Obere' gemeint ist?

    Wie auch immer:

    Linke Obere Elemente sind (ink. Diagonale):

    zeile+spalte <= 10
    

    Rechte Obere Elemente sind (ink. Diagonale):

    zeile+spalte >= zeile*2
    

    Jockel



  • tip:

    versuche mal in der zweiten forschleife eine abhängigkeit zwischen zeile und spalte zu sehen und dort dann die 1 zu setzen.
    bedenke: wie sieht ein dreieck aus, und wie ist die abhängigkeit zeile/spalte 😉



  • Jockelx schrieb:

    Bist du sicher, dass die 'linke Obere' und nicht die 'linke Untere', bzw.
    'rechte Obere' gemeint ist?

    Also in meiner Aufgabe steht "For Schleife soll die linke obere Dreiecksmatrix mit Zahlen aufsteigend von 1 an füllen.

    [quote="Jockelx"
    Wie auch immer:

    Linke Obere Elemente sind (ink. Diagonale):

    zeile+spalte <= 10
    

    Rechte Obere Elemente sind (ink. Diagonale):

    zeile+spalte >= zeile*2
    

    Jockel[/quote]

    Muss ich denn die beiden Werte "zeile" + "spalte" nicht vorher definieren? Wie z.B Int = a?

    int a=1;
    	for (int zeile=0; zeile <=9; zeile ++)
    	   {
    	    for (int spalte=0; spalte <=9; spalte ++)
    	       { 
    
    		   a++;
    	    }
    	   }
    

    Ich habe leider da noch nicht so den Durchblick 😞



  • Hi,

    die Tipps sollten eigentlich reichen...

    int a=1;
    for (int zeile=0; zeile <=9; zeile ++)
    {
      for (int spalte=0; spalte <=9; spalte ++)
      {
        if(Tip_Erfuellt)
        {
          matrix [zeile][spalte] = a;
          ++a;
        }
        else
        {
          matrix [zeile][spalte] = 0;
        }
      }
    }
    

    Jockel


Anmelden zum Antworten