c语言题目!!!急求大神相助,题目有点复杂,做出来给高分!!!! 10

模拟文曲星上的猜数游戏,先由计算机随机生成一个各位相异的4位数字,由用户来猜,根据用户猜测的结果给出提示:xAyB其中,A前面的数字表示有几位数字不仅数字猜对了,而且位置... 模拟文曲星上的猜数游戏,先由计算机随机生成一个各位相异的4位数字,由用户来猜,根据用户猜测的结果给出提示:xAyB
其中,A前面的数字表示有几位数字不仅数字猜对了,而且位置也正确,B前面的数字表示有几位数字猜对了,但是位置不正确。
最多允许用户猜的次数由用户从键盘输入。如果猜对,则提示“Congratulations!”;如果在规定次数以内仍然猜不对,则给出提示“Sorry, you haven't guess the right number!”。程序结束之前,在屏幕上显示这个正确的数字。
我编出来的不管后来输入什么都提示congratulations
哪有啊,就是原题产生随机数,然后你猜,输入样例就是你猜的四个数字啊
展开
 我来答
暨翰藻0HQ
2012-10-21
知道答主
回答量:15
采纳率:0%
帮助的人:14.9万
展开全部
#include <stdio.h>

#include <string.h>
#define N 4
#define MAXCOUNT 5
int guessNumOnce(char *result,int *x,int *y,int count);
void getRandNumber(char *randNumber);
int guessNumber();
int main()
{
guessNumber();
return 0;
}
int guessNumOnce(char *result,int *x,int *y,int count)
{
int i;
char guess[N+1];
printf("%dth times,%d times leaves! please guess(4 number):",count,MAXCOUNT-count);
gets(guess);
*x=0;*y=0;
for(i=0;i<4;i++)
{
if(guess[i]=='\0')
break;
if(guess[i]==result[i])
(*x)++;
else if(strchr(result,guess[i]) )
(*y)++;
}
if((*x)==4)
return 1;
else
return 0;
}
void getRandNumber(char *randNumber)
{
//自己设计,随机生成各位互不相同的四位数,所对应的字符串。。
//此处不做详细设计。。
strcpy(randNumber,"1234");
}
int guessNumber()
{
int x=0,y=0;
int count=0;
char randNum[5];
getRandNumber(randNum);
for(count=1;count<=MAXCOUNT;count++)
{
if( 1==guessNumOnce(randNum,&x,&y,count) )
{
printf("congratulations\n");
return 1;
}
else
{
printf("%dA%dB\n",x,y);
}
}
printf("Sorry, you haven't guess the right number!\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式