您的位置:

猜单词c语言,猜单词C语言程序

本文目录一览:

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");

}