Zufällige Zahlen C Programmierung?


05.06.2021, 19:29

#include<stdlib.h>

#include<time.h>

#include<stdio.h>

#include<conio.h>

void zufall (const int werte[], int Schritt, int N)

{ int i,b;

printf("\n\n");

for(b=0;b<7;b++)

{

for(i = 0; i < N; i++)

 {

 printf("%3d",werte[i]);

 }

 printf("\n");

 }

}

void ausgabe (const int werte[], int Schritt, int N)

{

 int i,b;

 for(i = 0; i < N; i++)

 {

textcolor(RED);

if(Schritt==6)

{

printf("%3d",werte[i]);

}

 }

  textcolor(WHITE);

}

void SortSelection(int a[], int anz)

{

  int i,j,min,hilf,b;

  const int N = 6;

srand(time(NULL));

  int liste[N];

    for(i = 0; i < N; i++)

liste[i]=rand()%49;

  for(i = 0; i < anz; i++)

    {

      min = i;

      for(j = i+1 ; j < anz ; j++)

   if(a[j] < a[min])

          min=j;

      if(min!= i)

    {

         hilf=a[min];

      a[min]=a[i];

      a[i]=hilf;

        }

ausgabe(a,i+1,anz);

    }

}

int main(void)

{

  int i;

const int N = 6;

srand(time(0));

  int liste[N];

    for(i = 0; i < N; i++)

liste[i]=rand()%49;

printf("\nLotto 6 aus 49");

printf("\n==============");

printf("\nZahlen der x-ten Ziehung:\n");

  ausgabe(liste,N+1,N);

  SortSelection(liste,N);

zufall(liste,N+1,N);

  return 0;

}

1 Antwort

time(0) ist die Zeit in Sekunden. Du initialisierst also den Zufallsgenerator immer mit dem selben Seed, da das Programm nicht länger als 1 Sekunde läuft, folglich bekommst du die selben Zahlen. Einfach nur einmal initialisieren in main(), das sollte das Problem lösen.

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Informatik-Studium
PATA03572 
Fragesteller
 05.06.2021, 19:54

Time 0 bezieht sich ja auf die aktuelle Uhrzeit also kommt jedes mal was anderes raus. Aber die Gewinnerkombination soll sich ja mit unteren unterscheiden. Wie kann ich oben und unten andere Kombinationen machen?

0
Schachpapa  05.06.2021, 20:38
@PATA03572

Wie er es sagt: nur einmal initialisieren mit srand, also außerhalb der Schleife und jedenfalls nicht in SortSelection

1
Christoph987  05.06.2021, 22:00
@PATA03572

zufall() gibt die selben Werte 7 mal aus und ausgabe() gibt das nur aus, wenn Schritt == 6 ist - wieso ist das überhaupt ein Parameter?

0