最后,它计算出获胜游戏的百分比。我的问题是,我应该得到一个百分比的游戏赢得约39%-60%,根据一个同事,但每次我运行程序,我得到约20%,我不明白为什么。我做错什么了吗?谁能帮帮我吗?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int dieOne, dieTwo, keyValue, value, wins = 0, firstWins = 0, subWins = 0, loss = 0, count=0;
double percentWin, percentFirstWins, percentSubWins;
srand(time(NULL));
do{
dieOne = rand() % 6 + 1;
dieTwo = rand() % 6 + 1;
value = dieOne + dieTwo;
count++;
if (value==7||value==11) {
firstWins++;
wins++;
}
else if (value== 2||value==3||value==12) {
loss++;
}
else {
do{
keyValue = value;
dieOne = rand() % 6 + 1;
dieTwo = rand() % 6 + 1;
value = dieOne + dieTwo;
count++;
if (value==7) {
subWins++;
wins++;
}
else if (value = keyValue) {
loss++;
}
} while ( value != 7 && value != keyValue );
}
} while (count <= 20000);
percentWin = (double) wins/count * 100;
percentFirstWins = (double) firstWins/count * 100;
percentSubWins = (double) subWins/count * 100;
printf("You won %.1lf percent of your games! \nYou won %.1lf percent of games on the first roll.\nYou won %.1lf percent of games on the second roll.\n", percentWin, percentFirstWins, percentSubWins );
system("pause");
}
掷7有6种可能的方法,掷11有两种可能的方法。
第一次掷骰子共有8种可能的方法。
掷骰子有36(6^2)种可能的方法。这意味着你在第一次滚动中有8%的机会获胜,或者大约22%的时间。
这可能是导致您的问题的原因:
else if (value = keyValue) {
你在分配,而不是比较。这将总是评估为真,从而人为地夸大你的损失。这里应该使用==
而不是=
。
此外,对于既不是赢也不是输的滚动,您不需要增加wins
或los
计数器,而是添加到count
。所以最终会出现赢+输!=count
的情况。在计算获胜百分比时,请尝试将其计算为wins/(loss+wins)
。
我是编程新手,我正在尝试用C#构建一个掷骰子游戏。 程序要求用户输入边数,然后用随机数掷骰子。 我有以下伪代码: 向用户询问边数。 用一个随机数滚动骰子,最大范围是边的数量。 告诉用户滚动的号码 我的问题是,我如何掷骰子,在用户指定的范围内生成一个随机数?
YAML模式被定义为一组标签的组合,并包括用于解析非特定标签的机制。 YAML中的故障安全模式以这样的方式创建,即它可以与任何YAML文档一起使用。 它也被视为通用YAML文档的推荐架构。 类型 故障安全模式有两种类型:通用映射和通用序列。 通用映射 它代表一个关联容器。 这里,每个键在关联中是唯一的,并且映射到恰好一个值。 YAML对键定义没有任何限制。 下面给出了表示通用映射的示例 - JSO
"小镇故事" 官网微信小程序 织梦CMS微信小程序 织梦(dede)小程序进行接口功能添加,不改动原有代码,简单配置就可以使用。 主要功能 首页 头部banner、搜索、栏目导航、热门排行、推荐内容、最近内容 栏目 分类栏目展示(图片,标题,说明) 列表 文章 作者(关注),点赞,喜欢收藏,猜你喜欢,评论,转发,海报,鼓励,tag标签 TAG 独立列表 推荐专题页 推
起源 早在2003年的时候,那时的jME还不叫jMonkeyEngine,也不是一款游戏引擎。作者只是想要尝试一下Java的3D图形性能,于是启动了一个项目,只实现了最基本的场景图管理和图形渲染。 作者的名字叫做Mark Powell,他在论坛的昵称叫做MojoMonk。这个项目被命名为MojoMonkey,后来更名为jMonkeyEngine。 Mark Powell在实现了一个基本的图形引擎(
我用的是阿尔杜伊诺式的。我遇到了的奇怪行为。Arduino通过COM4上的USB供电和通信。我正在64位Windows ;7上运行Eclipse。 我当前的Arduino代码看起来如下所示;延迟是为了让我可以启动和停止Java服务并查看Arduino IDE中的串行窗口,inputBuffer是一个字符数组。 下面是Java端的代码。我修改了它的双向通信与串行端口。这只在启动时发送一个字节数组。
我正在尝试实现筛选算法,它会询问连续数字列表的大小,并打印出该列表中的素数,但我收到了一个seg错误:11错误。 这是我的代码: