我試圖做一個C程序出了Cows and Bulls game word版String value =「clay」自動更改爲「/ 000lay」?
這裏是我的代碼: -
#include<stdio.h>
#include<conio.h>
void main()
{
char word[4],guess[4];
int i,j,check=0,b=0,c=0,d[4];
system("cls");
printf("Welcome to the Cows and Bulls game!\n\nEnter a 4 letter word to be guessed :- ");
scanf("%s",word);
while(check==0)
{
printf("\nEnter your guess :- ");
scanf("%s",guess);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(i==j && word[i]==guess[j])
{
b++;
d[j]=j;
break;
}
else if(word[i]==guess[j] && j!=d[j])
{
c++;
break;
}
}
}
printf("%d cow(s) and %d bull(s)!\n",c,b);
if(b==4)
{
printf("Congratulations! You have correctly guessed %s",word);
check=1;
}
else
{
check=0;
}
}
getch();
}
但我是假設有問題我把這個詞「土」被猜測但只要編譯器接受猜測詞的值,先前給出的「粘土」一詞就變成了「/ 000lay」,這完全是該程序的一個固定。我可以在調試時看到這一點。
這究竟是爲什麼?任何幫助表示讚賞!
另一個bean計數器:)除非你處於一個內存不足的嵌入式環境中否則不要爲文本聲明微小的緩衝區。只要把[256]作爲最低限度。 –