急求一份完整的文曲星上的猜数字游戏的课程设计

3. 文曲星猜数游戏

模拟文曲星上的猜数游戏,先由计算机随机生成一个各位相异的4位数字,由用户来猜,根据用户猜测的结果给出提示:xAyB

其中,A前面的数字表示有几位数字不仅数字猜对了,而且位置也正确,B前面的数字表示有几位数字猜对了,但是位置不正确。

最多允许用户猜的次数由用户从键盘输入。如果猜对,则提示“Congratulations!”;如果在规定次数以内仍然猜不对,则给出提示“Sorry, you haven't guess the right number!”。程序结束之前,在屏幕上显示这个正确的数字。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main()

{

int k,i,j,a[4],b[4],count,d,n;

time_t t;

srand((unsigned) time(&t));

b[0]= rand()%9;

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

{

rsm:k= rand()%9;

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

if(k==b[j])

goto rsm;

b[i]=k;

}

printf("\n请输入猜的次数: ");

scanf("%d",&n);

while(n--)

{

count=0;d=0;

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

{

scanf("%d",&a[i]);

}

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

{

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

count++;

}

printf("%dA",count);

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

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

{

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

d++;

}

printf("%dB\n",d-count);

if(count==4)

{

printf("\nCongratulations!\n");

system("pause");

return 0;

}

}

printf("Sorry, you haven't guess the right number.\n");

printf("随机产生的数:");

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

{

printf("%d ",b[i]);

}

system("pause");

}