您的位置:首页 > 其它

文曲星猜数游戏

2012-11-14 19:28 274 查看
模拟文曲星上的猜数游戏,先由计算机随机生成一个各位相异的4位数字,由用户来猜,根据用户猜测的结果给出提示:xAyB。其中,A前面的数字表示有几位数字不仅数字猜对了,而且位置也正确,B前面的数字表示有几位数字猜对了,但是位置不正确。

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

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int num[4],guess[4];
int i,j,times;
int countA,countB;
int maxTimes;
times=0;
printf("How many times do you want to guess?");
scanf("%d",&maxTimes);
srand(time(NULL));
num[0]=rand()%10;
//随机生成四个不相同的数字
for (i=1;i<4;i++)
{
do
{
num[i]=rand()%10;
for (j=0;j<i;j++)
{
if (num[i]==num[j])
break;
}
if(j==i)break;
} while (1);
}
//以下注释部分为输出电脑随机生成的四个数字
//for (i=0;i<4;i++)
//{
//	printf("%d ",num[i]);
//}
//printf("\n");

//以下为猜数过程
do
{
countA=0,countB=0;
times++;
if (times>maxTimes)
{
printf("Sorry,you haven't guess the right number!\n");
printf("The number is %d%d%d%d.\n",num[0],num[1],num[2],num[3]);
break;
}
for (i=0;i<4;i++)
{
scanf("%d",&guess[i]);
}
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
if (guess[j]==num[i])
{
if (j==i)
countA++;
else
countB++;
}
}
}
printf("%d:%dA%dB\n",times,countA,countB);
if (countA==4)
{
printf("Congratulation!\ n");
break;
}
} while (1);
getch();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: