keine ausgabe im lottoprogramm



  • smilingman schrieb:

    Hi...

    Außerdem verstehe ich den Aufbau deines Programms nicht richtig, sollte die
    die Zeile:

    z[i]=1 + rand()%48;
    

    nicht vielleicht in der do-while Schleife sein

    ja das stimmt!
    habe ich gerade bemerkt, als ich doppelte azhlen hatte!
    😉



  • smilingman schrieb:

    Hi...

    for(int i=0;i<6;i++)
    

    und wenn ich das so verwende, dann kommt als sechste zahl eine mehrstellige zahl heraus...

    bei meiner version nicht...?
    weiss nicht genau warum?



  • waaah!!! 😡
    ich bekomme ab und zu doppelte zahlen in einer ziehung!!!

    folgender code:

    #include <iostream>
    #include <ctime> 
    using namespace std;
    
    int main()
    
    {
        int z[6],t[6];
        int l,i,j;
        bool b;
    
        srand(time(0)); 
    
        for (i=1;i<7;i++)
        {
    
            do
                {
                    z[i]=1 + rand()%49;
                    b=true;
    
                    for (j=1;j<7;j++)
                    {
                        if (z[i]==z[j])
                        {
                            b=false;
                        }
                    }
                }
            while (b==true);
        }
    
        for (i=1;i<7;i++)
        {
            cout<<z[i]<<" ";
        }
        system("PAUSE");
    }
    


  • Hast du auch alle for-Schleifen geändert oder nur die eine, vergleich dein
    Program nochmal genau mit meinem...deine for-Schleifen sind auf keinen Fall
    korrekt.

    gruß smilingman.



  • Oh, hatte auch einen kleinen Fehler in meiner 2. for-Schleife, habe es
    aber gerade geändert, siehe beispiel auf Seite 1.

    gruß smilingman.



  • treborek schrieb:

    da ich zu faul bin, viel zu tippen kürze ich es immer ab:

    tdbiazfza (Tja, dann bin ich auch zu faul zum antworten)



  • also ich habe gerade eben deinen code mal kompiliert und ausprobiert
    -> es kommen auch ab und zu doppelte zahlen vor!
    und von diesem fehler abgesehen stimmen meine for-schleifen!
    einfach mal ausprobieren.



  • Also ich bekomme bei meiner Version keine doppelten Zahlen...

    hier nochmal die verbesserte Lösung:

    #include <iostream> 
    #include <ctime> 
    using namespace std; 
    
    int main() 
    
    { 
    	int lottoZahlen[6];
    	bool isBad = false;
    
    	srand(time(0));
    
    	for(int i=0;i<6;i++){
    		do{
                isBad = false;
    			lottoZahlen[i]=1 + rand()%48;
    			for(int j=0;j<i;j++){
    				if(lottoZahlen[i] == lottoZahlen[j]){
    					isBad = true;
    				}
    			}
    		}while(isBad);
    	}
    
    	for (int i=0;i<6;i++){ 
    		cout<<lottoZahlen[i]<<endl; 
    	}
    
    	system("PAUSE"); 
    }
    

    mit deinen for-Schleife greifst du aber auf das array[6] zu,
    das es nicht gibt, ist wahrscheinlich nur Zufall das deine
    Version funktioniert...

    gruß smilingman.



  • dader beweis...
    es kommen doppelte zahlen vor!?! 😕 😮



  • Ok habe es auch gerade bemerk, hatte es nur paar mal probiert und da
    kamen natürlich keine raus, mein Fehler war das ich isBad in der for-Schleife
    auf false gesetzt habe muss natürlich über die for-Schleife, habe es in meinem
    Beispielen nochmal korigiert.

    gruß smilingman.



  • smilingman schrieb:

    Ok habe es auch gerade bemerk, hatte es nur paar mal probiert und da
    kamen natürlich keine raus, mein Fehler war das ich isBad in der for-Schleife
    auf false gesetzt habe muss natürlich über die for-Schleife, habe es in meinem
    Beispielen nochmal korigiert.

    gruß smilingman.

    jaa das funktioniert jetzt richtig!!!
    danke!!! 😃

    nächstes problem:

    hier...

    😕



  • oh flascher thread
    🙄


Anmelden zum Antworten