本文目錄一覽:
C語言程序設計猜單詞怎麼做
你要實現的是什麼功能,我理解是。你從文件裏面讀取一個單詞到內存中,然後你輸入單詞與之想比較,然後相同提示正確,不相同不提示。
第一:寫一個文件流,讀取你保存到電腦上的txt文件到內存中,並且存入一個數組中。
第二:get你猜的單詞,然後與之比較。正確返回true錯誤返回false。判斷返回值,true提示通過
false繼續。
如果還要複雜點的話,可以在比較判斷函數裏面添加一些人性化的內容,比如說有幾個不相同這類的,憑自己的想想能立來做
用C語言編猜單詞小遊戲
#include stdio.h
#include stdlib.h
#include string.h
#include time.h
#define max 1024
#define min 50
void main()
{
FILE *fp;
char c;
int i=0;
int j=0;
//讀文件
char str[max][min]={0};
if((fp=fopen(“word.txt”,”r”))==NULL)
{
printf(“can not open file word.txt\n”);
exit(0);
}
c=fgetc(fp);
while(c!=EOF)
{
if(c!=’ ‘)
{
str[i][j]=c;
j++;
}
else
{
i++;
j=0;
}
c=fgetc(fp);
}
//產生隨機數,0-i
srand((unsigned int)time(NULL));
int n=rand()/20;
while((n0)||(ni))
{
n=rand()/20;
}
printf(“取得的隨機數是第%d個單詞\n”,n);
//檢查單詞
printf(“#######guess begin######\n”);
printf(“\n”);
char gs;
char con=’y’;
while(con==’y’)
{
printf(“請輸入字母,# 號表示結束\n”);
scanf(“%c”,gs);
getchar();
char gue[min]={0};
int flag=0;
while(gs!=’#’)
{
for(int i=0;str[n][i]!=’\0′;i++)
{
if(str[n][i]==gs)
{
printf(“字母%c在單詞中\n”,gs);
flag=1;
break;
}
}
if(!flag)
{
printf(“字母%不在單詞中\n”,gs);
}
printf(“請輸入字母,# 號表示結束\n”);
scanf(“%c”,gs);
getchar();
}
printf(“請輸入你猜的單詞\n”);
scanf(“%s”,gue);
getchar();
if(!(strcmp(str[n],gue)))
{
printf(“恭喜你,猜對了!\n”);
}
else
{
printf(“很遺憾,你猜錯了\n”);
}
printf(“continue?y is guess again,press any key to end \n”);
scanf(“%c”,con);
getchar();
}
fclose(fp);
}
C語言猜單詞小程序程序設計
修改後如下
你所說的多循環一次是因為輸入的回車被讀入
目前加了判斷略去輸入的回車 如果需要略去其他字符 比如空格等 可類似判斷
#includestdio.h
#includestring.h
main()
{
char *p;
int i,count=8,rightcount=0;
char answer[]=”junk”;
char guess,userguess[strlen(answer)];
for (i=0;istrlen(answer);i++)
userguess[i]=’-‘;
userguess[i] = 0;//這裡 加個結束符
while(rightcount!=strlen(answer)count!=0)//這裡條件微調了一下
{
printf(“The word now looks like this :%s\n”,userguess);
if(count!=1)
printf(“You have %d guesses left.\n”,count);
else
printf(“You have only one guess left.\n”);
printf(“Your guess:”);
while(scanf(“%c”,guess) guess == ‘\n’);//略去換行符輸入
if((p=strchr(answer,guess)))
{
*(userguess+(p-answer))=*p;
rightcount++;
*p=’-‘;
printf(“The guess is correct.\n”);
}
else
{
count–;
printf(“There are no %c’s in the word.\n\a”,guess);
}
}
if(rightcount==strlen(answer)) printf(“You win.\n”);
else printf(“You lose.\n”);
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/301380.html