C语言写猜字游戏

/*你说的功能基本达到了,但是样式没有怎么调整,你自己看下吧*/

#include<stdio.h>

#include<stdlib.h>

void getNum(int a[]) /*产生随机数*/

{int i,j;

randomize();

a[0]=random(10);

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

{

a[i]=random(10);

for(j=i-1;j>=0;j--)

if(a[i]==a[j])

{i--;

break;

}

}

}

void inputNum(int b[]) /*输入数字,并保证没有重复数字*/

{int i,j;

puts("Input number:");

laber:;

scanf("%d%d%d%d",&b[0],&b[1],&b[2],&b[3]);

for(i=3;i>0;i--)

for(j=0;j<i;j++)

if(b[j]==b[i])

{puts("Input again:");

goto laber;

}

}

main()

{int a[4],b[4],c[10][4],A=0,B=0,correct[10][2],count=0,i,j;

char ch;

laber:;

system("cls");

getNum(a);

while(count<10) /*最多猜10次*/

{puts("Browse the historic document?(Y/N)"); /*是否查看历史记录*/

ch=getchar();

if(ch=='Y'||ch=='y')

for(i=0;i<count;i++)

{printf("%d:",i+1);

for(j=0;j<4;j++)

printf("%d\t",c[i][j]);

printf("%dA %dB",correct[i][0],correct[i][1]);

putchar('\n');

}

putchar('\n');

inputNum(b);

for(i=0;i<4;i++)

c[count][i]=b[i];

for(i=0;i<4;i++)

for(j=0;j<4;j++)

{if(a[i]==b[j]&&i==j)

A++;

else if(a[i]==b[j]&&i!=j)

B++;

}

if(A==4)

{puts("Congratulations!!");

getch();

break;

}

else

printf("%dA %dB\n",A,B);

correct[count][0]=A;

correct[count][1]=B;

count++;

A=0;B=0;

getchar();

}

getchar(); /*是否再猜一次*/

puts("Guess again?");

ch=getchar();

if(ch=='Y'||ch=='y')

goto laber;

}