#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void initDeck (int deck[]);
void showDeck (int deck[]);
void shuffleDeck (int deck[]);
int getBet();
main()
{
int deck[52];
int playerBet;
char z;
initDeck(deck);
shuffleDeck(deck);
showDeck(deck);
playerBet = getBet();
//scanf ("%d\n", &playerBet);
printf("%d\n", playerBet);
z = 1;
getchar(z);
return 0;
}
void initDeck (int deck[]){
int k;
int i;
for (k = 1; k < 53; k++){
i = k - 1;
deck[i] = k;
}
return;
}
void showDeck (int deck[]){
int k;
for (k = 0; k < 52; k++){
printf("%d\n", deck[k]);
}
return;
}
void shuffleDeck (int deck[]){
int random;
int k;
int temp;
srand(time(0));
for (k = 52; k > 1; k--){
random = (rand() % k) + 1;
if (random != k){
temp = deck[k - 1];
deck[k - 1] = deck[random - 1];
deck[random- 1] = temp;
}
else{
k++;
continue;
}
}
return;
}
int getBet(){
int bet;
scanf ("%d\n", &bet);
return bet;
}
Die Funktion in Frage ist getBet() und wenn ich eine ganze Zahl eingeben, gibt es mir keine Ausgabe. Ich habe versucht, die Eingabe in main und es hat funktioniert, aber ich sehe das Problem damit nicht. Ich habe ein paar Mal auf kleine Fehler überprüft, und ich sehe nichts falsch daran ...Der Versuch, die Eingabe von einer Funktion in C
Es funktioniert, aber ich verstehe nicht unbedingt warum. In der Hauptfunktion war es die gleiche Zeile und doch funktionierte es. Und ohne das \ n schließt das Programm sofort, da (aus mir unbekannten Gründen) der Befehl getchar es nicht stoppt. –
Sie können den Beitrag von Martin unten lesen, er machte eine gute Erklärung. –