你好
具体的代码如下:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int Digit(int n,int m)//判断正确的数字的个数
{
int count=0;
int i,a[4];
for(i=0;i<4;i++)
{
a[i]=m%10;
m/=10;
}
while(n)
{
for(i=0;i<4;i++)
if((n%10)==a[i])
{
count++;
break;
}
n/=10;
}
return count;
}
int Position(int n,int m)//判断正确的位置的个数
{
int count=0;
int i,a[4];
for(i=0;i<4;i++)
{
a[i]=n%10;
n/=10;
}
i=0;
while(m)
{
if((m%10)==a[i])
count++;
i++;
m/=10;
}
return count;
}
int main()
{
srand((unsigned)time(NULL));
int n;//随机数
int time=0;//次数
int m;//猜的数
int a[1000][3];
int i,j;
n=rand()%(9999-1000+1)+1000;
while(1)
{
system("cls");
printf("请输入您猜的数:");
scanf("%d",&m);
system("pause");
a[time][0]=m;
a[time][1]=Digit(n,m);
a[time][2]=Position(n,m);
time++;
system("cls");
printf("\n您猜的数字 数字正确的个数 位置正确的个数\n");
if(Digit(n,m)==4&&Position(n,m)==4)
{
printf("%d\t\t%d\t\t%d\n",m,Digit(n,m),Position(n,m));
printf("恭喜你 猜正确了^_^\n"
"您一共猜了%d次^_^\n",time);
break;
}
for(i=0;i<time;i++)
printf("%d\t\t%d\t\t%d\n",a[i][0],a[i][1],a[i][2]);
system("pause");
}
system("pause");
return 0;
}
希望能帮助你哈^_^
温馨提示:答案为网友推荐,仅供参考