用c++编写猜数字的游戏

编写猜数字的小游戏,让计算机随机产生4个0-9之间的随机数,由用户来猜这4个数,每猜一次,计算机就给出形如"nAmB"的信息,n表示共猜对了n个数,m表示有m个数的位置和... 编写猜数字的小游戏,让计算机随机产生4个0-9之间的随机数,由用户来猜这4个数,每猜一次,计算机就给出形如"nAmB"的信息,n表示共猜对了n个数,m表示有m个数的位置和数字都猜对了,若用户将4个数的位置和数字都猜对了,则输出“你赢了,还继续猜吗?若8次均没有猜对,则输出”你输了,正确答案是++++,还继续吗?”用户输入y时则开始新一轮游戏,否则游戏结束。 展开
 我来答
百度网友6809e30a0
2007-11-11 · TA获得超过5285个赞
知道大有可为答主
回答量:3765
采纳率:0%
帮助的人:2828万
展开全部
#include <stdio.h>
#include <time.h>
main()
{
int question[4]={-1,-1,-1,-1},i=0,j=0,k=0,A=0,B=0,answer[4]={0};
char again='y';
while(again=='y')
{
srand((int)time(0));
while(i<4)
{
k=(int)rand()%10;
for(j=0;j<i;j++)
if(k==question[j])
{
k=-1;
break;
}
if(k==-1)
continue;
question[i]=k;
i++;
}/*while i*/
for(i=8;i>0;i--) /*还有8次机会*/
{
A=0;B=0;
printf("\n你还剩下%d次机会。",i);
printf("\n请输入四个0-9之间的数字,中间用空格隔开\n");
for(j=0;j<4;j++)
scanf("%d",&answer[j]);
for(j=0;j<4;j++)
for(k=0;k<4;k++)
{
if(answer[j]==question[k])
{
if(j==k) A++;
else B++;
}
}/*for*/
if(A==4)
{
again='0';
printf("\n你赢了,还继续猜吗?(y/n)");
while(again!='y'&&again!='n')
scanf("%c",&again);
break;
}/*if*/
printf("\n%dA%dB",A,B);
if(i==1)
{
again='0';
printf("\n你输了,正确答案是");
for(j=0;j<4;j++)
printf("%d\t",question[j]);
printf("\n还继续吗?(y/n)");
while(again!='y'&&again!='n')
scanf("%c",&again);
printf("%c",again);
break;
}/*if*/
}/*for changce*/
}/*while again*/
printf("感谢您玩这个游戏。");
}
bhkkbhkk
2007-11-17 · TA获得超过589个赞
知道答主
回答量:358
采纳率:0%
帮助的人:194万
展开全部
#include<iostream.h>
#include<stdlib.h>
#include <ctime>

void main()
{
int a[4],s[4],men,k,m(8),r;
srand(time(0)) ;
for(int i=0;i<4;)
{
r=rand();
if(r>=0&&r<=9)
{
a[i]=r;
i++;
}
}

cout<<"请输入4个数字"<<endl;
for(;m>0;m--)
{abc:
{
k=0;
men=0;
for(int i=0;i<4;i++)
{
cin>>s[i];
if(s[i]>9||s[i]<0)
{

cout<<"您第"<<i+1<<"次输入的数字有误,请重新输入,保证它在0和9之间"<<endl;

goto abc;
}
}

}
{
for(int i=0;i<4;i++)
if(a[i]==s[i]) men++;
if(men==4)
{
cout<<"恭喜你,全部正确"<<endl;
goto end;
}
}
{
int d[4]={s[0],s[1],s[2],s[3]};
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(d[j]==a[i])
{
d[j]=-1;
k++;
break;
}
}
}
}
cout<<"您一共输入"<<k<<"个正确数字"<<endl;
if(k==men)
cout<<"您输入正确的数字位置全部正确"<<endl;
else
cout<<"在您输入正确的数中有"<<men<<"个位置正确"<<endl;
cout<<"您还有"<<m-1<<"次机会"<<endl;
}
cout<<"您已经没有机会继续猜了";
end:;
}

有点缺陷,你自己改吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神圣剑盾使用者
2007-11-24 · TA获得超过2441个赞
知道小有建树答主
回答量:1206
采纳率:66%
帮助的人:0
展开全部
看明天的好戏了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式