求解c语言考题猜数游戏:功能一:计算机想好了一个4位无重复数字,例如:0913是可以的,350求解c语言考题猜数游戏:功能一:计算机想好了一个4位无重复数字,例如:0913是可以的,3502也
求解c语言考题
猜数游戏:
功能一:计算机想好了一个4位无重复数字,例如:0913是可以的,3502也是可以的,6787不可以,现在您想办法把这个数字猜出来, 每猜一个数字,计算机会根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。如正确答案为5234,而猜的人猜5346,则是1A2B。其中有一个5的位置对了,记为1A;\n 而3和4这两个数字对了,而位置没对,因此记为2B;一共有10次机会,注意,:输入的数字不能重复。
//猜数游戏
/*
猜数游戏:
功能一:计算机想好了一个4位无重复数字,例如:0913是可以的,
3502也是可以的,6787不可以,现在您想办法把这个数字猜出来,
每猜一个数字,计算机会根据这个数字给出几A几B,
其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。
如正确答案为5234,而猜的人猜5346,则是1A2B。其中有一个5的位置对了,记为1A;\n
而3和4这两个数字对了,而位置没对,因此记为2B;一共有10次机会,注意,:输入的数字不能重复。
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int n=0;
int cmp(char a[],char b[])//比较
{
int s=0,i,j;
for(i=0;i<4;i++)
if(a[i]==b[i])
s++;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(b[j]==a[i]&&j!=i)
n++;
}
}
return s;
}
main()
{
srand((unsigned)time(NULL));
char a[5],b[5];
int i,j,s,k=0;
for(i=0;i<4;i++)//无重复4位数
{
a[i]=rand()%10+48;
for(j=i-1;j>=0;j--)
{
if(a[i]==a[j])
{
i--;
break;
}
}
}
a[i]='\0';
//puts(a);测试用,下面是输入过程
do{
gets(b);
s=cmp(a,b);
printf("1A:%d\t2B:%d\n",s,n);
n=0;
k++;
}while(s!=4&&k!=10);
if(k!=10)//结果
printf("You Win,the num is %s",a);
else
printf("You Lost,the num is %s",a);
}
我自己写了个 不知道可否满意 测试已成功
您好,很高兴为您解答,流星不死为您答疑解惑
如果本题还有不懂的地方请追问,望采纳我的回答。
祝楼主学习进步。
上面的代码可以直接复制到编译器里,带换行。
帮帮我,我要答案和过程及解释有6个谜语让在座的50人猜共猜对202个.已知每人至少猜对两个谜语,且 2020-05-23 …
猜1~99之间的数字,只许猜5次!每次猜一个数字,会提示大于或是小于这个数字!问怎样猜概率最高?最 2020-06-05 …
题:掷骰子,分两种情况1、每次都猜5点,掷10次,至少有一次能猜中的概率多大?2、每次都随机猜一个 2020-06-13 …
2道数学题1.有6个谜语,让50个人猜,共猜对202个,已知每人至少猜对2个,且猜对2个的有5人, 2020-06-20 …
猜猜看(你能猜出下面诗句写的是什么吗)1.我家洗砚池边树,朵朵花开淡墨痕.2.千锤万凿出深山,烈火 2020-06-29 …
一、1.2.3.4.5(猜一个成语)二、高高在上,是否能经受风的考验(猜一种生活用品)三、少一一、 2020-07-08 …
两人同猜一个谜语,甲能猜出的概率为3/5,乙能猜出的概率为5/6,计算下列各事件的概率(1)两人都 2020-07-09 …
两人同猜一个谜语,设甲能猜出的概率是P(A),乙能猜出的概率为P(B),那么两人中至少有一人能猜出 2020-07-09 …
超级智力题!一国王发布一求婚题,若应求者能在5次内猜出公主的生日,就把公主许配给他.在5次猜测当中, 2020-11-06 …
概率相等,每次只能猜1种,我每次都猜同一种.猜之前下注,猜对奖励下注的5倍(就是额外得到4倍下注), 2020-12-19 …