C++编程。掷骰子问题。

骰子六个面分别为1,2,3,4,5,6。且六个面的相对位置不变,(使用随机数函数)要求输出每次掷出骰子后各个面的数字。只是输出上面的话很简单,但是在骰子的各个面被固定的情... 骰子六个面分别为1,2,3,4,5,6。且六个面的相对位置不变,(使用随机数函数)要求输出每次掷出骰子后各个面的数字。
只是输出上面的话很简单,但是在骰子的各个面被固定的情况下如何知道所有面的数字?(最少需知道两个不相对的面的数字才能确定,那如何刨除第一次的随机数字及其对面的数字?难道用while循环判定?加switch语句把所有情况写出来??)括号内为自己的想法。求帮助
展开
 我来答
cpucash
2013-04-09 · TA获得超过1585个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:1051万
展开全部
先随机出1数字出现的位置,这个好办吧,6肯定是对面
再随机出2出现的位置,一个死循环,如果不是1 6出现的位置跳出死循环
判断是否是1 6的位置也不难,你随机出1的位置了,6的位置出现
用一个数组a[6]标记123456出现的位置,数组的下标是0~5标记123456
而数组的值标记出现的位置,如随机出1出现的位置是上,那么赋值为0,那么6也就是a[5]就赋值1表示下
这样判断第二个随机出的数值是否是0 1,你这样不就可以做了?
更多追问追答
追问
关键是如何输出六个面的位置及对应的数字啊?每次随机出来的上面(第一个数)和前面(第二个数)都是不一样的。难道把情况都枚举出来?
追答
其实这个算是个小技巧吧
用一个6个数的数组存储
数组的下标表示位置,而数组中存储的数据表示这个位置出现的数字,这个懂吗?
也可以这样
定义六个变量,上下左右前后,随即出上,那么下也就知道了
shang=rand()%6+1;
xia=7-shang; //假设两个对面的和是7,1 6对面,2 5对面,3 4对面

接着随即前
while(1)
{
qian=rand()%6+1;
if(qian!=shang&&qian!=xia)
break;

}
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机编程是指使用单片机编程语言,如C语言,来编写单片机的程序代码,以控制单片机的行为。这种技术在电子工程、计算机科学和电子通信等领域中被广泛应用。单片机编程的主要任务是设计和实现单片机的程序,包括定义单片机的指令系统、编写程序代码、处理器... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式