Ich hab mich mal an Lotto versucht (nicht real, da gewinnen eh nur die anderen). Vielleicht mag es ja wer mal probieren?
Für jeden Millionengewinn spenden wir ne halbe Mille dem Forum hier, oder ??
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define DEBUG 1
int main(void){
uint16_t maxzahlen=49, maxziehen=6, zusatzzahl=1;
uint16_t i, j, n, schondrin=0;
uint16_t *zahlen=NULL;
system("clear");
printf(" L O T T O Z I E H U N G \n");
printf("- H a m S T e r - a r t - \n\n");
do{
printf("Zahlenmenge? (49?): ");
scanf("%hu",&maxzahlen);
}while(maxzahlen < 1);
do{
printf("Anzahl Zahlen zu ziehen? (6?): ");
scanf("%hu",&maxziehen);
}while((maxziehen > maxzahlen));
zahlen=malloc((maxziehen+1)*(sizeof(uint16_t)));
printf("Zusatzzahl ziehen? (1|0): ");
scanf("%hu",&zusatzzahl);
srand(time(NULL));
for(i=0;i<maxziehen;i++){
do{
n=(rand() % maxzahlen)+1;
schondrin=0;
for(j=0;j!=i;j++){
if(zahlen[j]==n){
schondrin=1;
#if DEBUG
printf("schondrin..");
#endif
}
}
if(!schondrin) zahlen[i]=n;
}while(schondrin);
printf("%hu ",zahlen[i]);
}
if(zusatzzahl){
do{
n=(rand() % maxzahlen)+1;
schondrin=0;
for (j=0;j!=maxziehen;j++){
if(zahlen[j]==n){
schondrin=1;
#if DEBUG
printf("schondrin..");
#endif
}
}
if(!schondrin) zahlen[maxziehen+1]=n;
}while(schondrin);
printf("Zusatzzahl: %hu",zahlen[maxziehen+1]);
}
printf("\n\n");
free(zahlen);
return EXIT_SUCCESS;
}
edit: quelltext korrektur. compilat erneut angehängt.