Lottoschein mit for Schleife erstellen



  • Ich bin noch nicht so lange dabei.
    Mir ist klar, dass ich eine for Schleife für die Zeilen brauche und er ne für die Zahlen. Wie aber beide Zusammenhängen erschließt sich mir nicht.
    Ich dachte an sowas in der Art:

    for(Zeilen=0;Zeilen<=7;zeipen++)
    {
    for(Zahl=1;Zahl<=49;Zahl++)
    {
    printf("%i",&zahl);
    }
    printf("\n");
    }
    

    Läuft aber leider gar nicht wie es soll



  • Daze1988 schrieb:

    Ich bin noch nicht so lange dabei.

    Sollte auch kein Angriff sein.

    Daze1988 schrieb:

    Mir ist klar, dass ich eine for Schleife für die Zeilen brauche und er ne für die Zahlen. Wie aber beide Zusammenhängen erschließt sich mir nicht.
    Ich dachte an sowas in der Art:

    for(Zeilen=0;Zeilen<=7;zeipen++)
    {
    for(Zahl=1;Zahl<=49;Zahl++)
    {
    printf("%i",&zahl);
    }
    printf("\n");
    }
    

    Läuft aber leider gar nicht wie es soll

    Nicht ganz. In der ersten for-Schleife hast du einmal "Zeilen" und einmal "zeipen" stehen.
    Die Zweite for-Schleife darfst du nicht bis 49, sonder auch nur bis 7 laufen lassen. du willst ja 7 und nicht 49 verschiedenen Zahlen.
    Für die Zahl 1 aus 49 musst du dir Zufallszahlen generieren lassen.



  • Ach ja, die erste for-schleife stimmt auch nicht ganz.
    Entweder for(Zeilen=1;Zeilen<=7;zeipen++) oder for(Zeilen=0;Zeilen<7;zeipen++)
    Sonnst bekommst du 8 Zeilen



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) 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.



  • #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 😉


Log in to reply