# Lottozahlen in C-Programm



## Sardaar (10. Dezember 2009)

Hi Leute
ich soll ein programm in C schreiben mit begriff " Elektronische Lottozahlen Auswertung "
das programm soll mit 3 Eigene Funktion geschrieben werden.

Schreiben Sie eine Funktion
*void LottoZahlen_Ziehen(int Ziehung_Sechs_aus_49[]),*
die 6 garantiert unterschiedliche Lottozahlen zieht.
• Schreiben Sie eine Funktion
*void draw_box(int lottozahlen[]),*
die die Lottozahlen wie in Abb. 1 an die entsprechenden Stellen des
2D-Characterfeldes „char tippschein[ M ][ N ]“ einträgt.
• Schreiben Sie eine Funktion
*int Wieviel_Richtige(int Tipp[],
int Ziehung_Sechs_aus_49[]),*
die auswertet, wie viele Richtige getippt wurden.

das programm bis jetzt sieht so aus :



```
#define ANZAHL_TIPPS 6
// Prototypen
void draw_box(int []);
void LottoZahlen_Ziehen(int []);
int Wieviel_Richtige(int Tipp[], int Ziehung_Sechs_aus_49[]);
//-----------------------------------------------------------------
void main(){
	int tipp[ANZAHL_TIPPS] = {1,2,3,4,5,6}; // hier tipp aendern
	int ziehung_sechs_aus_49[ANZAHL_TIPPS];
	int richtige, i;

	// Meinen Tipp ausgeben :

	printf("Mein Tipp :\n");
	for (i=0;i<ANZAHL_TIPPS;i++)
		printf("%2d ", tipp[i]);
	printf("\n");

	// Lottozahlen ziehen :

	printf("\n----- Ziehung der Lottozahlen -----\n");
	LottoZahlen_Ziehen(ziehung_sechs_aus_49);

	// Lottozahlen zeichnen und auswerten:

	draw_box(ziehung_sechs_aus_49);
	richtige = Wieviel_Richtige(tipp, ziehung_sechs_aus_49);
	printf("Richtige : %d\n", richtige );
}
//-----------------------------------------------------------------
void draw_box(int lottozahlen[]) {
#define N 40
#define M 16
	int i, k;
	int row_in_mask, col_in_mask;
	int row_index, column_index;
	char tippschein[ M ][ N ] = {
		                     "+----+----+----+----+----+----+----+",
			"+  1 +  2 +  3 +  4 +  5 +  6 +  7 +",
			"+----+----+----+----+----+----+----+",
			"+  8 +  9 + 10 + 11 + 12 + 13 + 14 +",
			"+----+----+----+----+----+----+----+",
			"+ 15 + 16 + 17 + 18 + 19 + 20 + 21 +",
			"+----+----+----+----+----+----+----+",
			"+ 22 + 23 + 24 + 25 + 26 + 27 + 28 +",
			"+----+----+----+----+----+----+----+",
			"+ 29 + 30 + 31 + 32 + 33 + 34 + 35 +",
			"+----+----+----+----+----+----+----+",
			"+ 36 + 37 + 38 + 39 + 40 + 41 + 42 +",
			"+----+----+----+----+----+----+----+",
			"+ 43 + 44 + 45 + 46 + 47 + 48 + 49 +",
			"+----+----+----+----+----+----+----+"
	};
}
```
ich danke in vorraus.
mein problem ist wie kann die funktion schreiben oder wie konnt ihr ein tipp geben dass ich besser verstehen soll.

bedanke mich vielmals.


----------



## FrankBooth (10. Dezember 2009)

Kannst du dein Problem mal irgenwie beschreiben?
Was genau willst du wissen? Ach ja und bitte code-Tags benutzen.


----------



## Dragonate (10. Dezember 2009)

Ja ich würde auch darum bitten, konkretere Fragen zu stellen. Was willst du wozu genau wissen.

Vom prinzip her, deiner Aufgabenstellung gerecht, sollte in einer Funktion die Lotto-Zahlen generiert werden, hier bietet sich ein Zufallsgenerator an ( rand() ), in der gleichen Funtkion sorgst du auch dafür, das keine Zahlen doppelt vorkommen.

In ein Tip-Array gibst du deine 6 Tip-Zahlen ein.

Anschließend wird das Tip-Array mit den generierten Zahlen verglichen, wenn Treffer dann erhöhe eine Zählervariable.

Schonmal eine kleine Allgemeine Hilfestellung.

Mfg Dragonate


----------



## Vereth (10. Dezember 2009)

Beim Ziehen machst du ein Array für die 49 Zahlen, suchst per rand() eine aus, schreibst sie in dein Ziehungs-Array und kopierst die letzte an die Stelle der gezogenen. Dann suchst du aus 48 Zahlen eine aus, ... usw.


----------



## Sardaar (13. Dezember 2009)

Ich bedanke mich von ihre antwort

Aber eigentlich meine problem ist dass ich keine ansatz finde ... und von aufgabe erstellung verstehe nicht was er eigentlich von mir will ...


----------



## Dragonate (15. Dezember 2009)

Ansätze haben wir dir doch schon gegeben.

Eigentlich wird von dir doch nur verlangt ein kleines Lotto-Programm zu schreiben. Sofern dir das Spiel Lotto ein begriff ist, sollte das nicht so schwierig sein.

Programmiere erstmal die Funktion, die dir 6 Lottozahlen generiert, die auch nicht doppelt sind, wenn du dir die Aufgabe so zerlegst, ist es wircklich nicht schwer.

Eine For schleife die 6 mal durchläuft, und ein Array dabei mit 6 Zufallszahlen zwischen 1 und 49 generiert (siehe  rand()   Funktion) und diese in ein Array schreibt.

Mit einer einfachen Vergleichsfunktion, prüfst du, ob es die Zahl schon im Array gibt, oder du legst ein Array aus 49 Zahlen an, nimmst bei jedem Durchlauf eine zufällig raus, und entfernst diese hinterher aus dem Array, so können auch keine doppelten Zahlen entstehen.


----------

