Beispiel: Ermittlung von n Quicktipps im Lotto 6 aus 45 Wir beginnen mit einer Version ohne und Funktionen und bauen diese dann entsprechend um!
void main() { int n; //Anzahl der Tipps int tipp[6]; srand(time(0)); cout<<"Wie viele Tipps moechten Sie erhalten?"; cin>>n; for(int i=1;i<=n;i++){ //n Tipps ermitteln cout<<"\n"<<i<<". Tipp: "; for(int j=0; j<6;j++){ tipp[j]=rand()%45+1; cout<<tipp[j]<<" "; } } getch(); }
Bei der Verwendung von Arrays in Funktionen sind einige Besonderheiten zu beachten:
Wir erweitern nun das obige Beispiel um den Einsatz von Funktionen:
void erzeugeQuicktipp(int a[6]); void main() { int n; //Anzahl der Tipps int tipp[6]; srand(time(0)); cout<<"Wie viele Tipps moechten Sie erhalten?"; cin>>n; for(int i=1;i<=n;i++){ //n Tipps ermitteln cout<<"\n"<<i<<". Tipp: "; erzeugeQuicktipp(tipp); } getch(); } void erzeugeQuicktipp(int a[6]){ for (int i=0; i<6; i++) { a[i]=rand()%45+1; cout<<a[i]<<" "; } }
Erweitere das Beispiel nun um eine eingene Funktion für die Ausgabe. Außerdem soll verhindert werden, dass innerhalb eines Tipps Zahlen doppelt vorkommen.
void erzeugeQuicktipp(int a[6]); void ausgabe(int a[6]); void main() { int n; //Anzahl der Tipps int tipp[6]; srand(time(0)); cout<<"Wie viele Tipps moechten Sie erhalten?"; cin>>n; for(int i=1;i<=n;i++){ //n Tipps ermitteln cout<<"\n"<<i<<". Tipp: "; erzeugeQuicktipp(tipp); ausgabe(tipp); } getch(); } void erzeugeQuicktipp(int a[6]){ for (int i=0; i<6; i++) { a[i]=rand()%45+1; //Überprüfe, ob Zahl bereits vorhanden for(int j=0;j<i;j++){ //Durchlaufe die vorhandenen Einträge if(a[i]==a[j]){ //und überprüfe sie auf Gleichheit mit dem //aktuellen Einträge i--; //ist die Zahl bereits vorhanden, so setze //Zähler i zurück, damit diese Zufallszahl //automatisch nochmals erzeugt wird! } } } } void ausgabe(int a[6]){ for (int i=0; i<6; i++) { cout<<a[i]<<" "; } }