回复 楼主 谷雨寒
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
main()
{
int a[4],b[4],i,j;
int num,time=0;
int m=0,n=0,o=0;
int ch=1,chch;
char change[100];
clrscr();
/*clean screen*/
a[0]=rand()%10;
/*get a four number*/
a[1]=rand()%10;
a[2]=rand()%10;
a[3]=rand()%10;
while(1)
/*the number of every position not be same*/
{
if((a[0]==0||a[0]==a[1]||a[0]==a[2]||a[0]==a[3]||a[1]==a[2]||a[1]==a[3]||a[2]==a[3])==0)
{
printf("Notice:The first number is %d:",a[0]);
break;
}
else
{
a[0]=rand()%10;
a[1]=rand()%10;
a[2]=rand()%10;
a[3]=rand()%10;
}
}
while(ch==1) /*circulate for guess or not*/
{
n=0;
m=0;
o=0;
printf("Please input the num:");
scanf("%d",&num);
time++;
while(1) /*input the right number of four*/
{
if(num<1000||num>9999)
{
printf("Number input wrong,input again:");
scanf("%d",&num);
}
else
break;
}
b[0]=num/1000;
/* deposit num to array b*/
b[1]=(num-b[0]*1000)/100;
b[2]=(num-b[0]*1000-b[1]*100)/10;
b[3]=num-b[0]*1000-b[1]*100-b[2]*10;
for(i=0;i<4;i++)
if(a[i]==b[i])
m++;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(a[i]==b[j])
o++;
if(m==4)
{
printf(" Aright Grameover!\n");
printf("You have guess %d times\n",time);
exit(0);
}
else if(time==8)
{
n=o-m;
printf("Sorry,guess wrong:%dA%dB\n",m,n);
printf("You have guess 8 times,do you want again(1-Yes,0-No):");
scanf("%s",&change[100]);
}
else if(time==15)
{
printf("You have guess 15 times.Game Over!\n");
exit(0);
}
else
{
n=o-m;
printf("Sorry,guess wrong: %dA%dB\n",m,n);
printf(" Guess %d times,again(1-Yes,0-No)?",time);
}
do
{
scanf("%s",&change[100]);
switch(change[100])
{
case '0': exit(0);break;
case '1': ch=1;break;
default:{chch=1;ch=0;printf("Input Wrong input again(1-Yes,0-No):");}
}
}while(chch==1&&ch!=1);
}
}