重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 求职面试
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[主观题]

猜数游戏:程序利用随机函数产生一个[1,10]内的随机整...

猜数游戏:程序利用随机函数产生一个[1,10]内的随机整数,让用户反复猜测,直到猜对为止,程序能提示猜数范围,并统计猜数次数。 甲乙二人先后进行猜数游戏,记录二人猜中花费的次数。比较二人次数,次数少的获胜。当二者猜的次数相同,则输出 平局。 请按要求编程: 1、补充完善下面的int guess()函数,函数的功能是: 随机函数先产生一个[1,10]内的随机整数,让用户输入猜测的数,当输入的数比随机数大时,输出提示“大了”;当输入的数比随机数小时,输出提示“小了”,让用户反复猜,直到猜对为止。该函数要求记录猜数的次数。返回值为猜中的数。 #include <stdio.h> #include <stdlib.h> #include <time.h> int guess() { int magic; //magic用于保存随机数 srand(time(0)); //用系统时间初始化随机函数 magic=rand()%10+1; //产生一个1到10的随机整数 .......... //请完善函数的功能 } 2、编写main()函数,完成如下功能: 输出提示:请甲开始猜数。 调用guess函数,获得甲猜中的数、猜的次数,并输出。 输出提示:请乙开始猜数。 调用guess函数,获得乙猜中的数、猜的次数,并输出。 比较二人次数,次数少的获胜。当二者猜的次数相同,则输出 平局。 输入、输出样例:猜数游戏:程序利用随机函数产生一个[1,10]内的随机整...猜数游戏:程序利用随机函数产生一个[1提示: 1、随机函数每次产生的数不同,甲、乙要猜的数可能不同 2、guess函数只能用return语句返回一个值(猜中的数),猜中的次数无法直接return,可以设计1个全局变量,用于保存每次调用guess求出的猜中次数。 (可参阅附加例题“歌唱比赛程序“中全局变量min或max的作用) (也可参考本周课件“变量的作用域”中第一个学习内容“请先动手做2---”中的例题。)

暂无答案
更多“猜数游戏:程序利用随机函数产生一个[1,10]内的随机整...”相关的问题

第1题

模仿下面的猜大小游戏程序,编写一个猜拳游戏程序。 猜拳游戏规则: 由计算机随机生成一个0~2的随机数()。
点击查看答案

第2题

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。

【说明】

有一种猜数字游戏,开始时程序随机产生四个不相同的个位数字(顺序固定),然后玩家输入猜测的四个数字。程序比较后给出提示,本次猜数字有几个数字完全正确,有几个数字数值正确但是位置错误。玩家重复猜测直至结果完全正确。例如,程序生成“1234”,玩家猜测“1630”,则提示"位置正确的有:“1”个,位置错误的有:“1”个,完全错误的有“2”个。

下面的两个Java函数是猜数字游戏里面使用的两个函数,第一个用于产生四个不相同的数字。第二个函数先判断输入是否合法,若合法则进行比较,并给出提示。

【Java程序】

………………

private String randNum()//产生答案数字

{

int[] digits={0,1,2,3,4,5,6,7,8,9};

Random mum=new Random((new Date()).getTime());

for(int i=0;i<10;i++)

{

int p=Math.abs(rnum.nextInt())%10;

int tmp=digits[p];//tmp是临时存储数字的变量

(1);

digits[i]=tmp;

}

return Integer.toString(digits[0])+Integer.toString(digits[1])

+Integer.toString(digits[2])+Integer.toString(digits[3]);

}

String checkAnswer(String guess,Stdng answer)

{

if guess.length()!=4)return "要输入4个数字!";

int num=0;

try{ num=(2);} //判断输入是否是数字

catch(NumberFormatException ex)

{return "要输入数字!";}//catch

int[]timesDigit={0,0,0,0,0,0,0,0,0,0};

for(int i=0;i<4;i++){

int ptr=num%10;

num=num/10;

if (3) //输入数字有重复

return "数字有重复!";

}//for

int a=0;

int b=0;

for(int j=0;j<4;j++)

{

int pos=answer.indexOf(guess.substring(j,j+1));

if (4) //当前数字完全正确

a++;

else if(pos>=0)

b++;

}

if (5) //答案完全正确

return "恭喜!答对了!!";

else{

textAreaContent+= "位置正确的有:"+a+"个,位置错误的有:"+b+"

个,完全错误的有"+(4-a-b)+"个\n";

return "继续努力";

}

}

………………

点击查看答案

第3题

阅读下列算法说明和算法流程,将应填入(n)处的字句写在对应栏内。

【算法说明】

程序实现了常见的猜数字游戏。游戏开始时由程序自动产生一个1到100的随机数,接收用户输入,并给出提示信息,直至用户猜对。用户猜对后,显示猜测次数,并提供“重新开始”和“退出”功能。

算法采用两层循环实现。外层循环采用do-while循环,由循环条件控制是否重新开始。内层采用for循环,用于判断用户的每次输入。m是随机产生的整数,键盘输入是字符串类型变量,n是整型变量。

【问题1】内循环还需要一个变量,其作用为(1)。

【问题2】请将流程图5.2补充完整。

点击查看答案

第4题

甲、乙二人玩一种猜球游戏,甲从一个罐内任取一球让乙猜其颜色,若猜对,则乙得分为该罐该颜色球的个数;若猜错,则乙失分为该罐其他颜色球的个数之半。甲可从三个罐中任取一罐:Ⅰ罐内有2个蓝球和2个白球;Ⅱ罐内有3个红球,1个蓝球和3个白球;Ⅲ罐内有2个红球和4个蓝球。试求甲、乙二人的最优策略;又问这种游戏对双方是否公平合理?
点击查看答案

第5题

猜数

Q 先生和S 先生、P 先生在一起做游戏。Q 先生用两张小纸片,各写一个数。

这两个数都是正整数,差数是1。他把一张纸片贴在S 先生额头上,另一张贴在

P 先生额头上。于是,两个人只能看见对方额头上的数。

Q 先生不断地问:你们谁能猜到自己头上的数吗?S 先生说:“我猜不到。”

P 先生说:“我也猜不到。”S 先生又说:“我还是猜不到。”P 先生又说:“我

也猜不到。”S 先生仍然猜不到;P 先生也猜不到。S 先生和P 先生都己经三次

猜不到了。可是,到了第四次,S 先生喊起来:“我知道了!”P 先生也喊道:

“我也知道了!”

问:S 先生和P 先生头上各是什么数?

点击查看答案

第6题

阅读以下函数说明和C代码,回答问题

[说明]

任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。

以下是一个“剪刀石头布”游戏。猜拳时的“策略”有2种方法:第一种是“猜赢后继续出同样的招式”(WinningStrategy),第二种是“从上一次出的招式种,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了Hand类表示猜拳时的“手势”,类内部以0(石头)、1(剪刀)、2(布)来表示。Hand类的实例只会产生3个。

以下是C语言实现,省略了不相关属性及方法,方法实现体亦有所省略,能够正确编译通过。

[C代码]

typedef (1) (*funl)();

enum HandValue{HANDVALUE_GUU=0, HANDVALUE_CHO=1, HANDVALUE_PAA=2};

//手势可取值,依次为“石头”、“剪刀”、“布”

//其大小顺序是循环相克的,即:石头赢剪刀,剪刀赢布,布赢石头

bool won;

struct Hand *WSprevHand;

struct Hand{//手势

enum HandValue handvalue;

}hand[3]={HANDVALUE_GUU, HANDVALUE_CHO, HANDVALUE_PAA};

int fight(struct Hand *h1, struct Hand *h2)

//比较h1和h2。h1代表的手势较大时返回1,h1较小时返回-1,相等时返回0

//

{

if(h1->handvalue == h2->handvalue){

return 0;

}else if((h1->handvalue+1)% (2) == h2>handvalue){

return 1;

}else{

return -1;

}

}

struct Hand* getHand(int handvalue){

//依据手势代表的值取得手势,若handvalue不合法,返回NULL

switch(handvalue){

case 0:

return &hand[0];

break;

case 1:

return &hand[1];

bteak;

case 2;

return &hand[2];

break;

}

return (3) ;

}

struct Strategy{//策略

funl nextHand;//下一个手势

};

struct Hand* WSnextHand()

{

if(!won){

PSprevHand = getHand(rand()%3);

}

return PSprevHand;

}

struct Player{

char name[20];

(4) strategy;//策略

int wincount;

int losecount;

int gamecount;

};

void main()

{

Strategy WS;

WS.nextHand = WSnextHand;

WSpreVHand = NULL;

struct Player WSplayer;

(5)(WSplayer.name,"ww");

WSplayer.wincount = 0;

WSplayer.losecount = 0;

WSplayer.gamecount = 0;

WSplayer.strategy = &WS;

}

点击查看答案

第7题

阅读下列函数说明和C++代码,回答问题

[说明]

任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。

以下是一个“剪刀石头布”游戏。猜拳时的“策略”有2种方法:第一种是“猜赢后继续出同样的招式”(WinningStrategy),第二种是“从上一次出的招式中,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了Hand类表示猜拳时的“手势”,类内部以0(石头)、1(剪刀)、2(布)来表示。Hand类的实例只会产生3个。以下是C++语言实现,能够正确编译通过。

[C++代码]

class Hand{

private:

int handvalue;

static Hand *hand0;

static Hand *hand1;

static Hand *hand2;

(1) ;

Hand(int handvalue){

this->handvalue = handvalue;

}

public:

(2) Hand* getHand(int handvalue){

/*省略具体实现*/

}

};

Hand *Hand::hand0 = new Hand(0);

Hand *Hand::hand1 = new Hand(1);

Hand *Hand::hand2 = new Hand(2);

class Strategy{

public:

(3) Hand* nextHand() = 0;

};

class WinningStrategy : public Strategy{

private:

bool won;

Hand *prevHand;

public:

winningStrategy(){

won = false;

}

Hand* nextHand(){

if(!won){

prevHand = Hand::getHand(rand()%3);

}

return prevHand;

}

};

class probstrategy : public Strategy{

public:

Hand* nextHand(){

int handvalue = 0;

/*省略具体实现*/

return Hand::getHand(handvalue);

}

};

class Player{

private:

string name;

Strategy* strategy;

public:

Player(string name, (4) strategy){

this->name = name;

this->strategy = strategy;

}

Hand *nextHand()(//向战略请示手势

return (5) ;

}

};

点击查看答案

第8题

甲、乙两人玩猜数字游戏,先由甲心中想一个数字,记为a,再由乙猜甲刚才所想的数字,把乙猜的数字记为b,其中a,b∈{1,2,3,4,5,6},若| a-b |≤1,就称甲乙“心有灵犀”。现任意找两人玩这个游戏,则他们“心有灵犀”的概率为( )。

A.1/9

B.2/9

C.7/8

D.4/9

点击查看答案

第9题

两个游戏者分别在纸上写0、1、2三个数字中的一个,且不让对方知道。先让第一个人猜两人写的数字的和,再让第二人猜数字总和,但规定第二人猜的总和数不能和第一个人相同。猜中者从对方赢得1元,如谁都没有猜中,算和局。试回答每个游戏者各有多少个纯策略。
点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,如果您知道正确答案,欢迎您来纠错

上学吧找答案