Ich wollte ein Spiel erstellen, das eine Zeichenfolge randomisiert und der Benutzer muss erraten, was die ursprüngliche Zeichenfolge ist, aber wenn ich die randomisierte Zeichenfolge anzeigen, wird es zweimal gedruckt. einmal randomisiert einmal nicht randomisiert. Hier ist mein Code:Warum wird meine Zeichenfolge zweimal ausgedruckt?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int checkWin(char guess[], char word[]);
void jumble(char array[]);
int main()
{
srand(time(NULL));
char word[5] = {'h', 'e', 'l', 'l', 'o'};
char scramble[5] = {'h', 'e', 'l', 'l', 'o'};
char guess[5];
jumble(scramble);
printf("The jumled word is: %s\n",scramble);
printf("Enter a guess: ");
for(int i = 0; i < 5; i ++)
{
scanf(" %c",&guess[i]);
}
printf("\n");
if(checkWin(guess,word))
printf("You win!");
else
printf("You lose");
}
void jumble(char array[])
{
int a,b,c;
for(a = 1; a<6; a++)
{
b = rand()%5;
c = rand() %5;
if(b==c)
{
a--;
continue;
}
char temp = array[b];
array[b] = array[c];
array[c] = temp;
}
}
int checkWin(char guess[], char word[])
{
int a = 0;
for(int i = 0; i < 5; i ++)
{
if(guess[i] == word[i])
a++;
}
if(a==5)
return 1;
else
return 0;
}
, wenn der Benutzer die Zeichenfolge errät es funktioniert gut, aber wenn ich versuche, den verschlüsselten String i wie bekommen etwas anzuzeigen:
The jumled word is: ollehhello"
Enter a guess: hello
You win!
Process returned 0 (0x0) execution time : 9.645 s
Press any key to continue.
ich weiß nicht, was los ist, falsch mit der Schnur, so würde jede Hilfe geschätzt werden.
Bitte den Code thinkin schreiben g, dass es für Menschen ist. Wenn Code nur für Compiler geschrieben wurde, sollte er nicht in Englisch geschrieben werden müssen. –