Hab wieder ein Problem :/
Ich habe eine Funktion geschrieben, die mich 6 Zahlen eingeben lässt. Falls ein Zeichen eingegeben wird, muss man erneut die Zahl eingeben. Zusätzlich möchte ich aber noch prüfen lassen ob die Zahl schon eingegeben wurde.
Der Vergleich soll nach der Eingabe stattfinden. Dort wo auch geprüft wird ob die Zahl ein Zeichen ist oder zwischen 1 und 49 liegt. Ich bin mir nicht sicher wie die Schleife aussehen muss.
Hier mein Code:
Code: Alles auswählen
void DruckeFeld(int *x,int spalten) {
int j;
printf("\n\n");
for(j=0; j<spalten; j++)
printf(" %d",x[j]);
printf("\n");
}
void holezahl(int *x)
{
char strnum[20];
char *ep;
int i;
for(i=0;i<6;i++) {
while (1) {
printf("\n %d. Zahl: ",i+1);
scanf( "%s", strnum );
errno = 0;
x[i] = strtol( strnum, &ep, 10);
if ((errno == 0) && (*ep == '\0' )) {
if (x[i] > 0 && x[i] <= 49)
break;
printf( "Zahl liegt nicht zwischen 1-49 oder wurde bereits eingegeben!\n");
}
else
printf( "Eingabe war keine Zahl!\n" );
}
}
}
int main (void) {
int a[7];
printf("\n\t\t\t Lotto");
holezahl(&a[0]);
printf("\nIhre Zahlen lauten:");
DruckeFeld(&a[0],6);
printf("\n\nBeliebige Taste druecken...");
getch();
return 0;
}