Lottoschein mit for Schleife erstellen



  • #include <iostream>
    #include <iomanip>
    
    using namespace std;
    
    int main()
    {
       int zahl = 0;
    
       for(int zeile = 0; zeile < 7; ++zeile)
       {
          for(int spalte = 0; spalte < 7; ++spalte)
             cout << setw(2) << ++zahl << ' ';
    
          cout << '\n';
       }
    }
    


  • Bravo!
    Lerneffekt null


  • Mod

    Bloß sieht mir der Code vom Threadersteller doch eher nach C aus, daher wird ihm Bellis Lösung wohl nicht viel bringen.

    @Daze1988: Es gibt zwar sehr viele Sprachen, die irgendwie "C" im Namen haben, aber letztlich sind das doch alles gänzlich unterschiedliche Sprachen. Sie berufen sich zwar auf ihren super-populären Vorfahren C (ganz ohne "++", "#", "Objective", "NET" oder sonst etwas), haben aber nur äußere Ähnlichkeit damit¹. Es ist wichtig, dass du weißt, welche Sprache du benutzt. Dein Code scheint originales C zu sein.

    ¹: Erschwerend kommt aber hinzu, dass manche der anderen Sprachen in der Lage sind, einfache C-Programme trotzdem zu verstehen. Bei solchen Anfängerprogrammen fällt einem daher eventuell gar nicht auf, wenn man die falsche Sprache benutzt.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum C (alle ISO-Standards) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Das Problem ist allerdings nicht auf C beschränkt oder typisch C-Lernfrage, es geht ja letztlich nur darum, Zeilenvorschub und Wagenrücklauf (und evtl. Format) zu organisieren. Da ginge auch Pseudocode.

    Falls es eine Hausaufgabe ist, kann man zur Not (bei c, c++ usw.) auch "Loop-Unrolling" betreiben.
    (wäre bei größeren Zahlen dann eben mehr eine Fleißaufgabe).

    Aber bei C kann man (z.B.) gut die Fahrenheit/Celsius - Aufgaben aus dem Anfang im Kernighan und Ritchie - Buch "The C Programming Language" als Vorbild nehmen und entsprechend anpassen/umschreiben.



  • Lerneffekt sollte etwas über NULL sein:

    srand( time( NULL ) );
    	int i=0;
    	for(i=0; i<49; ++i)
    	{
    		printf( "%i\n", 1 + rand() % 49 );
    	}
    

    Wie man das aber zeilenweise anordnet - nicht die geringste Ahnung. 😉



  • So siehts jetzt aus:

    int zahl, zeile, spalte;
    
    for(zeile=1;zeile<=7;zeile++)
    {
    	for(spalte=0;spalte<=7;spalte++)
    	{
    		for(zahl=1;zahl<=7;zahl++)
    		{
    		printf("%2i", zahl);
    		}
    	printf("\n");
    	}
    printf("\n");
    }
    
    _getch();
    }
    

    Ausgabe sieht so aus, dass ich 7x den Block 1-7 in 7 Zeilen bekomme.
    ich hätte aber gern 1-49 in 7 zeilen/7spalten



  • SeppJ schrieb:

    Bloß sieht mir der Code vom Threadersteller doch eher nach C aus, daher wird ihm Bellis Lösung wohl nicht viel bringen.

    @Daze1988: Es gibt zwar sehr viele Sprachen, die irgendwie "C" im Namen haben, aber letztlich sind das doch alles gänzlich unterschiedliche Sprachen. Sie berufen sich zwar auf ihren super-populären Vorfahren C (ganz ohne "++", "#", "Objective", "NET" oder sonst etwas), haben aber nur äußere Ähnlichkeit damit¹. Es ist wichtig, dass du weißt, welche Sprache du benutzt. Dein Code scheint originales C zu sein.

    Naja, ich bin wie gesagt recht frisch dabei. Ich nutz Visual Studio und darin C++, daher hab ich diesen thread gewählt.



  • Du willst doch sicher nicht deinen Lottoschein nur mit 1,2,3,4,5,6,7 ausfüllen?



  • EOP schrieb:

    Du willst doch sicher nicht deinen Lottoschein nur mit 1,2,3,4,5,6,7 ausfüllen?

    1 2 3 4 5 6 7
    8 9 10 11...

    ............49

    Es sollen alle Zahlen von 1-49 in 7 Zeilen und 7 Spalten dargestellt werden



  • So gehts, schön ist aber was anderes:

    int zahl;
    
    for(zahl=1;zahl<=7;zahl++) 
    { 
    printf("%3i", zahl); 
    } 
      printf("\n");
    for(zahl=8;zahl<=14;zahl++) 
    { 
    printf("%3i", zahl); 
    } 
       printf("\n"); 
    for(zahl=15;zahl<=21;zahl++) 
    { 
    printf("%3i", zahl); 
    } 
      printf("\n");
    for(zahl=22;zahl<=28;zahl++) 
    { 
    printf("%3i", zahl); 
    } 
       printf("\n"); 
    for(zahl=29;zahl<=35;zahl++) 
    { 
    printf("%3i", zahl); 
    } 
      printf("\n");
    for(zahl=36;zahl<=42;zahl++) 
    { 
    printf("%3i", zahl); 
    } 
       printf("\n"); 
    for(zahl=43;zahl<=49;zahl++) 
    { 
    printf("%3i", zahl); 
    } 
       printf("\n");
    


  • Daze1988 schrieb:

    EOP schrieb:

    Du willst doch sicher nicht deinen Lottoschein nur mit 1,2,3,4,5,6,7 ausfüllen?

    1 2 3 4 5 6 7
    8 9 10 11...
    ............49

    Es sollen alle Zahlen von 1-49 in 7 Zeilen und 7 Spalten dargestellt werden

    Eieiei, manche Leute sind unbelehrbar und du scheinst dazu zu gehören.
    Hat dir Belli nicht schon alles vorgekaut?



  • EOP schrieb:

    Daze1988 schrieb:

    EOP schrieb:

    Du willst doch sicher nicht deinen Lottoschein nur mit 1,2,3,4,5,6,7 ausfüllen?

    1 2 3 4 5 6 7
    8 9 10 11...
    ............49

    Es sollen alle Zahlen von 1-49 in 7 Zeilen und 7 Spalten dargestellt werden

    Eieiei, manche Leute sind unbelehrbar und du scheinst dazu zu gehören.
    Hat dir Belli nicht schon alles vorgekaut?

    Bringt mir nichts weil ich weder mit cout, noch mit setw was anfange.
    Mein Ziel ist es was dabei zu lernen und da will ich nicht einfach seinen Post kopieren und mich freuen, dass das geht.



  • Wenn ich mit der Zeile von Belli was anfangen könnte, dann würde sich das sicher erklären

    cout << setw(2) << ++zahl2 << ' ';
    

  • Mod

    Daze1988 schrieb:

    SeppJ schrieb:

    Bloß sieht mir der Code vom Threadersteller doch eher nach C aus, daher wird ihm Bellis Lösung wohl nicht viel bringen.

    @Daze1988: Es gibt zwar sehr viele Sprachen, die irgendwie "C" im Namen haben, aber letztlich sind das doch alles gänzlich unterschiedliche Sprachen. Sie berufen sich zwar auf ihren super-populären Vorfahren C (ganz ohne "++", "#", "Objective", "NET" oder sonst etwas), haben aber nur äußere Ähnlichkeit damit¹. Es ist wichtig, dass du weißt, welche Sprache du benutzt. Dein Code scheint originales C zu sein.

    Naja, ich bin wie gesagt recht frisch dabei. Ich nutz Visual Studio und darin C++, daher hab ich diesen thread gewählt.

    Dann ist das passiert, was ich befürchtet habe. Du machst C, aber hast einen C++-Compiler benutzt. Es hat bloß zufällig funktioniert, weil einfache C-Programme oft auch als C++ durchgehen können. Sind aber trotzdem zwei ganz verschiedene Sprachen. Visual Studio kann auch C.



  • Ich hab das als Schulfach und es soll letztendlich dazu führen, dass wir c++ machen. Dass das was ich jetzt programmiere Kinderfasching ist, ist mir klar, aber ich hab mega spass dran und will da möglichst schnell weiterkommen 😉



  • Kinderfasching ist das was deine Lehrer dir beibringen.



  • Habs...

    for(spalte = 0; spalte < 7; ++spalte) 
    {
       for(zeile = 0; zeile < 7; ++zeile)  
       {
          zahl2=zahl2+1;
    	  printf("%3i", zahl2);
       }   
    
    printf("\n"); 
    }
    


  • Was willste denn überhaupt für eine Ausgabe?
    Hab dein letzes Programm getestet und dabei kam nur zeilenweise "1 2 3 4 5 6 7" raus.
    Dein Jetziges zählt zwar brav hoch bis 49 - aber ist es das, was man von einem Lottoscheinprogramm erwartet? Da hab ich mit meinem eigenen schon knapp 60€ erspielt (1 Ausspielung). Das wird dir mit deinem kaum passieren.



  • EOP schrieb:

    Was willste denn überhaupt für eine Ausgabe?

    Das hat er doch von Anfang an sehr deutlich geschrieben ... 😕
    Das, was zum Beispiel bei meinem Programm (siehe oben) herauskommt.


Anmelden zum Antworten