用C语言写猜数(喜欢挑战的人可以来看看)

//猜数字。CPP:定义控制台应用程序的入口点。

//

# include & ltstdafx.h & gt

# include & ltstdlib.h & gt

# include & ltstdio.h & gt

# include & lttime.h & gt

//4位数随机生成,不需要重复位数。

void ProduceRandomNumber(int data[4])

{

int z;

/*随机选择1-九千九百九十九的号码,舍弃1-999的号码,选择1000-九千九百九十九的号码*/

{

srand((无符号)时间(空));

z =(rand()% 100)*(rand()% 100);/*随机选择*/

data[3]= z % 10;/*将随机数分成四份*/

data[2]= z/10% 10;

数据[1]= z/100% 10;

data[0]= z/1000% 10;

} while(z & lt;1000 | |数据[0]= =数据[1]| |数据[0]= =数据[2]| |数据[0]= =数据[3]| |数据[1]= =数据[2]| |数据[1]= =数据[3]| |数据

[2]= =数据[3]| |数据[0]= = 0);/*判断每个数字是否相同,如果相同,则再次输出*/

返回;

}

void Indata(整数,整数数据[4])

{

data[0]= number/1000% 10;

数据[1]=数字/100% 10;

data[2]= number/10% 10;

数据[3]=数字% 10;

}

int PosRight(int问题[4],int答案[4])

{

int i,count = 0;

for(I = 0;我& lt=3;i++)

{

if(问题[i]= =答案[I])

{

count++;

}

}

返回计数;

}

int NumRight(int question[4],int answer[4])

{

int i,j,count = 0;

for(I = 0;我& lt=3;i++)

{

for(j = 0;j & lt=3;j++)

{

if((问题[I]= =答案[j])& amp;& amp(我!=j))

{

count++;

}

}

}

返回计数;

}

int main(int argc,char* argv[])

{

int回答,count=0,输入[4],输出[4],m=0,n=0,choice

ProduceRandomNumber(输入);

Printf("欢迎来到猜谜游戏!\n游戏开始了!!!\ n ");

{

count++;

scanf("%d ",& amp回答);

Indata(答案,输出);

m=PosRight(输入,输出);

n=NumRight(输入,输出);

如果(m==4)

{

Printf("你真棒!!!\ n这个数字是%d % d % d \您已经猜了% d次了!\n ",输入[0],输入[1],输入[2],输入[3],计数);

打破;

}

其他

{

Printf("对不起,你错了!!提示:%dA%dB\n ",m,n);

}

if(count==8)

{

Printf("你已经猜了八遍了!你想继续吗?(1:是/0:假)\ n ");

scanf("%d ",& amp选择);

if(choice==1)

Printf("去吧!\ n ");

其他

{printf("结束游戏!\ n ");

打破;}

}

else if(count==15)

{

Printf("你已经猜了15次了,可能方法不对!下次继续!!!\ n ");

打破;

}

} while(1);

返回0;

}