您的当前位置:首页正文

猜数字游戏代码(c语言)

2023-12-24 来源:星星旅游


#include \"stdio.h\"

#include \"conio.h\"

#include \"stdlib.h\"

#include \"time.h\"

/*生成4位不重复的数字组*/

void answer(int x[5][10])

{

int n,m,ran;

srand(time(NULL));/*时间种子*/

/*存放1-9之间的数用于不重复取数*/

for(n=1;n<10;n++)

{

x[0][n]=n;

}

for(m=1;m<5;m++)

{

do

{

ran=rand()%10; /*随机位置*/

}

while(x[0][ran]==0);

x[m][0]=x[0][ran];

x[0][ran]=0;

}

}

/*处理用户输入返回全对的数字个数*/

int handle(int x[5][10])

{

int n[5]; /*用户输入的整形量*/

int qd=0,zd=0;/*qd-位置正确数字正确的个数zd-数字正确位置不对的个数*/

int i,j,c,c1,c2;

char mid[5];/*用于接收用户的输入的字符中间量*/

mid[0]=0;

printf(\"please input the numbers which you guess:\\n\");

for(c=1;c<5;c++)

{

do

{

mid[c]=getch();

if(mid[c]>='1'&&mid[c]<='9') /*控制用户输入的是1-9之间的数字*/

{

c2=0;

for(c1=c;c1>=1;c1--)

{

if(mid[c]!=mid[c1-1]) /*判断用户的输入的4个数字是否重复*/

c2++;

}

if(c2==c)

{

putchar(mid[c]);break;

}

}

/*实现回退修改*/

if(mid[c]=='\\b')

{

mid[c-1]='\\b';

putchar(mid[c-1]);

c--;

}

}

while(1);

}

/*用户输入的字符量转化为整型量*/

for(c=1;c<5;c++)

{

switch(mid[c])

{

case '1':n[c]=1;break;

case '2':n[c]=2;break;

case '3':n[c]=3;break;

case '4':n[c]=4;break;

case '5':n[c]=5;break;

case '6':n[c]=6;break;

case '7':n[c]=7;break;

case '8':n[c]=8;break;

case '9':n[c]=9;break;

}

}

/*处理用户猜数字的结果*/

for(i=1;i<5;i++)

{

for(j=1;j<5;j++)

{

if(n[i]==x[j][0])

{

zd=zd+1;

if(i==j)

{

zd=zd-1;

qd=qd+1;

}

}

}

}

printf(\"\%dA%dB\\n\

if(qd==4)

{printf(\"congratulation!you win!\\n\");}

return qd;

}

/*输出数字组*/

void put(int x[5][10])

{

printf(\"sorry for is%d%d%d%d\\n\

}

you!The answer

/*主函数*/

main()

{ int a[5][10];

int p,r;

char c;

do

{

clrscr(); /*清屏函数*/

r=0;

answer(a[5][10]);

for(p=0;p<10;p++)

{

r=handle(a[5][10]);

if(r==4)

break;

}

if(p==10&&r!=4)

{

put(a[5][10]);

}

printf(\"continue?(y-yes/else-exit)\\n\");

c=getch();

putchar(c);

putchar('\\n');

}

while(c=='y');

exit(0);

getch();

}

因篇幅问题不能全部显示,请点此查看更多更全内容