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.

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]<<" ";
	}
}

Aufgaben