Hilfe mit Funktion rand()

Kenanffb

Grünschnabel
Hallo Leute, ich bin ein absoluter Programmier und möchte gerne ein Programm schreiben, dass mir die Lottozahlen generiert.
Also der Compiler spuckt mir auf jeden Fall 6 beliebige Werte aus,
die aber komischerweise immer die selben sind.
Außerdem würde ich den Bereich gerne auf 1-49 beschränken.
Kann mir jemand helfen?
Vielen lieben Dank

int main ()

{
printf ("\t LOTTOZIEHUNG\n\n ");

int ziehung;
int zahl1;

for (ziehung=1; ziehung<7; ziehung++)
{
if (zahl1=rand()) printf ("%6i", zahl1);
}

getch();
}
 
also ich hab mal nen Quellcode zusammengeschrieben (mit dev-c++):

Code:
#include <stdio.h>
#include <windows.h>
#include <time.h>

int main()
{
    int zz;            //Zufalszahl
    int zahl[6]={0};   //die sechs Zahlen
    int i,j;           //index
    
	srand(unsigned(time(NULL)));    //setzt Zufallgenerator auf 0 (sonst immer gleiche Zufallszahlen)
	
	for(i=0;i<6;i++)
	{
       zz=(rand()%49)+1;       //generiert Zufalszahl zwischen 1 und 49

       for(j=0;j<6&&zahl[j]!=zz;j++)        //überprüfung ob Zufalszahl schon vorhanden
       {                       //<--
          if(zz==zahl[j])      //<--
            i--;               //<--  wenn vorhanden i wird zurückgesetz und später zahl[i] neu beschrieben
       }                       //<--
       
       if(zahl[j]!=zz)         //wenn zufalszahl nicht vorhanden zahl[i]=zz;
         zahl[i]=zz; 
    }

    for(i=0;i<6;i++)           //Ausgabe der zahlen
      printf("%6i",zahl[i]);
      
    printf("\n");
    system("pause");

}

ist so geschrieben das es keine dopplung gibt
 
@Gamer123:
Das hilft ihm nicht bei seinem Problem.

Du musst voher die Funktion srand wie folgt anwenden: srand( time() );
Damit verhinderst du das mehrmalige Vorkommen von gleichen Zufallszahlen.
 
Zurück