Eindimensionale Arrays und Funktionen

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.

    // Programm: lotto.cpp
    // Beschreibung: Erzeugen von Lotto-Tips
    #include <iostream>      // Zusatzbibliothek für Ein-und Ausgaben wird eingebunden
    #include <conio.h>       // Zusatzbibliothek für Konsole wird eingebunden
    #include <stdlib.h>      // Wird für Zufallszahl-Generator benötigt
    #include <time.h>        // Wird für Initialisierung des Zufallszahl-Generator benötigt
    using namespace std;     // Standard-Namensraum wird eingestellt
 
    void erzeugeQuicktipp(int a[6]);
    void ausgabe(int a[6]);
 
    int 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();
      return 0;	
    }
 
    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 Eintrag
			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]<<" ";
  	  }  
    }    

Aufgaben