PLS help!!



  • bitte bitte,
    erstmal die frage von mir? was soll die anweisung in zeile 14 machen? die schreibt an die stelle [8][8] (also unten rechts) den wert 8

    und die ausgabe, also ich hab noch nicht wirklich großartig mit cin und cout gearbeitet, also probierst du es damit

    //Header einbinden
    #include <stdio.h>
    
    //An die Stelle der Ausgabe
    for(i=0;i<=8;i++)
    {
     for(j=0;j<=8;j++)
     {
      printf("%d", sudoku_feld[i][j]);
     }
     printf("\n");
    }
    

    also das j musste halt noch deklarieren

    bei dem printf bin ich mir aber gerade nicht so sicher, ob das auch in C++ geht, dürfte aber auch funktionieren, im notfall musst du mal gucken, wie der aufbau von cout ist



  • miujin schrieb:

    bitte bitte,
    erstmal die frage von mir? was soll die anweisung in zeile 14 machen? die schreibt an die stelle [8][8] (also unten rechts) den wert 8

    Sicher? Ich probiere es jetzt nicht aus, aber ich denke, er schreibt an [9] [9] (über das Array hinaus) den Wert 9.



  • miujin schrieb:

    also das j musste halt noch deklarieren

    bei dem printf bin ich mir aber gerade nicht so sicher, ob das auch in C++ geht, dürfte aber auch funktionieren, im notfall musst du mal gucken, wie der aufbau von cout ist

    Da Soulseller ja sowieso mit einem C++-Compiler kompiliert, noch ein, zwei Hinweise hierzu. Zählvariablen für for-Schleifen muss man in C vorher deklarieren, in C++ aber nicht. Solange du eine Variable als nur für die Schleife brauchst, kannst du sowas hier machen:

    for(int i=0;i<123;i++) {...}
    

    printf ist auch ein Bestandteil von C++, das ist also kein Problem. Mit cout ginge das dann auch ganz einfach, nämlich so:

    #include <stdio.h>
    #include <iostream>
    
    int main() {
    	short sudoku_feld[9][9]={0};
    
    	for(int i=0;i<=8;i++)
    	{
    		sudoku_feld[i][i] = 1;
    	}
    	for(int i=0;i<=8;i++)
    	{
    		for(int j=0;j<=8;j++)
    		{
    			std::cout << sudoku_feld[i][j];
    		}
    		std::cout << std::endl;
    	}
    	getchar();
    }
    

    EDIT: Ach ja, und arbeite an deiner Einrückung! Sobald deine Programme ein wenig größer werden, kriegst du arge Probleme, wenn du nicht vernünftig einrückst.

    Öffnende geschweifte Klammer => nach rechts einrücken!
    Schließende geschweifte Klammer => wieder zurück!

    Mehr isses im Grunde nicht...



  • Gut danke erstmal Leute! ICh werde eure tipps sofort ausprobieren! und @miujin ja das mit der Zeile 14 habe ich auch gemerkt das die keinen sinn ergibt ist nu auch futsch^^ nuja also ich habe bis her es soweid geschafft!

    #include<iostream>
    
        using namespace std;
    
        int main()
    {
    
          int a,s;
          int sudoku_feld[9][9];
          for(a=0; a<9; a++)
          for(s=0; s<9; s++)
    
      {
          sudoku_feld[a][a] = 9;
          sudoku_feld[s][s] = 9;
      } 
    
          for(a=0; a<9; a++)
         {
          for(s=0; s<9; s++)
            {
            cout<<sudoku_feld[a]<<"     "<<sudoku_feld[s]<<"\n";
            }
         }
          cin.get();
    }
    

    Jetzt probier ich mal eure tipps noch aus!!! udn nochmals vielen dank hat mir sehr geholfen!



  • Hmm, das mit der Einrückung klappt aber noch nicht so ganz, ne. 😉 Oder sehen wir hier einen kruden Mix aus Tabs und Leerzeichen? Ansonsten zieh dir das hier mal 'rein:

    http://de.wikipedia.org/wiki/Einrückungsstil

    Öffnende und schließende eines Blocks/Scopes stehen untereinander. Beispiel:

    int main()
    {
      while(1)
      {
        for(;;)
        {
          if(1)
          {
            for(;;)
            {
              while(1)
              {
                DoSomething();
              }
            }
          }
        }
      }
    }
    

    Und das Füllen der Diagonalen mit Einsen musst du nur mit einer Schleife machen, nicht mit zweien (siehe mein Beispiel, das ist eigentlich schon die Lösung!).



  • _matze schrieb:

    Zählvariablen für for-Schleifen muss man in C vorher deklarieren

    ja, sollte man. geht natürlich auch anders, wenn man C99 verwendet.

    _matze schrieb:

    Mit cout ginge das dann auch ganz einfach...

    nicht dass ich pingelig bin. aber ich finde, im c-forum sollte man keinem zu 'cout' raten.
    🙂



  • ~fricky schrieb:

    nicht dass ich pingelig bin. aber ich finde, im c-forum sollte man keinem zu 'cout' raten.
    🙂

    Na ja, erstens rate ich ja nicht dazu, zweitens programmiert er ja offensichtlich C++ (er hat selbst cout benutzt und liest ein C++-Buch) und ist im falschen Forum gelandet, was schon erwähnt wurde und woraufhin er um Verschiebung gebeten hat.

    Also ja, du bist zu pingelig! 😉



  • _matze schrieb:

    Also ja, du bist zu pingelig!

    ok, hast ja recht.
    🙂



  • voila

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int arr[9][9];
    
        for(int i=0;i<9;i++)
        {
            for(int j=0;j<9;j++)
            {
                if(i==j)
                    arr[i][i]=1;
                else
                    arr[i][j]=0;
                cout << arr[i][j] << " ";
            }
            cout << endl;
        }
        cout << endl;
        return 0;
    }
    


  • Also habe es nun geschafft dank eurer Hilfe Vielen Vielen Dank!!


Anmelden zum Antworten