猜数字游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、猜数字游戏。
游戏随机生成4个互不相同的1位数,接受用户输入,根据用户输入输出“mAnB”的结果。
A表示数字和位置都正确,B表示数字正确,位置不正确。
例如随机数为“1234”,用户输入为“1435”,显示“2A1B”。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 4
#define NUM 8
void detect(char s[])
{
int i,j,num;
int a,b;
char ch[N];
for(num=0;num<NUM;num++)
{
a=b=0;
printf("This is the %d chance:",num+1);
for(i=0;i<N;i++)
{
ch[i]=getch();
if(ch[i]>='0'&&ch[i]<='9')
{
for(j=0;j<i;j++)
if(ch[i]==ch[j]) break;
if(j<i) i--;
else
{
putchar(ch[i]);
for(j=0;j<N;j++)
{
if(ch[i]==s[j])
if(i==j) a++;
else b++;
}
}
}
else
i--;
}
printf("%dA%dB\n",a,b);
if(a==N)
{
printf("You are right!\n");
break;
}
}
if(num==NUM)
printf("Sorry,the right answer is:%sd\n",s); }
main()
{
int i,j;
char s[N+1];
srand(time(0));
for(i=0;i<N;i++)
{
s[i]=rand()%10;
for(j=0;j<i;j++)
if(s[i]==s[j]) break;
if(j<i) i--;
else
{
s[i]+='0';
putchar('*');
}
}
s[i]='\0';
printf("\nYou have%d chances\n",NUM); detect(s);
}。