编程实现该游戏,游戏结束时,显示人猜一个数用了几次。
提示:用库函数random()产生一个随机数。
如:
Int z;
z= random(9999);
关于随机数的详解在本人2020-07-05发布的猜数游戏题目中有过详解.
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,z,t,i,c,m,g,s,j,k,l[4]; //j:数字正确的位数 k:位置正确的位数
srand((unsigned)time(0)); //随机数种子(否则便是伪随机数)
z=rand()%10000+1; //计算机想一个随机数
printf("****欢迎参加人机猜数游戏****");
printf("\n");
printf("\n");
printf("我有一个四位数的数字,请猜一猜!\n");
printf("\n");
for(c=1;;c++) //c: 猜数次数计数器
{
scanf("%d",&g); //请人猜
a=z,j=0,k=0,l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i<5;i++) //i:原数中的第i位数。个位为第一位,千位为第四位
{
s=g;
m=1;
for(t=1;t<5;t++) //人所猜想的数
{
if(a%10 == s%10) //若第i位与人猜的第t位相同
{
if(m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3])
{
j++;m=0;l[j-1]=t; //若该位置上的数字尚未与其它数字"相同"
} //记录相同数字时,该数字在所猜数字中的位置
if(i == t) k++; //若位置也相同,则计数器k加1
}
s/=10;
}
a/=10;
}
printf("你猜对了%d个数字,\n",j);
printf("并且在猜对的数字中有%d个位置也是正确的.\n",k);
printf("\n请输入一个四位数:\n");
if(k == 4)
{
break; //若位置全部正确,则人猜对了,退出
printf("恭喜你,猜对了!");
printf("\n");
printf("你用了%d次猜出了这个数.\n",c);
}
}
}
对我的博客或其他方面有任何见解或问题的话都可以私信我
或者联系本人QQ:3128909688
微信:DreamHerome
欢迎致电