gpt4 book ai didi

C 中的纸牌游戏。数据类型四舍五入会给出不正确的结果

转载 作者:行者123 更新时间:2023-11-30 15:11:38 26 4
gpt4 key购买 nike

我正在做一项作业,需要使用数组来制作类似于 war 的纸牌游戏。我有一个自定义函数,旨在确定随机选择的卡的套件。它首先确定随机数并将该数字除以 13(52 张卡/每组 13 张卡)。如果结果是 0-1,则花色是红心,1-2 是方片,2-3 是梅花,3-4 是黑桃。

问题是我无法将花色变成黑桃。结果必须四舍五入,不能是 3-4。我确信我的数据类型不正确,但我不知道如何解决这个问题。

这是我第一次在该网站上发帖,因此对我的问题格式提出的任何建设性批评表示赞赏。

The random number is generated in a previous function and it of pointer type int* r

最佳答案

你遇到这个问题是因为你试图通过将 int 除以 int 来得到小数,而这两个整数都没有小数。 *r 和 13 都是整数,因此它们相除得到的结果是整数。

我会做的是

carda = *r % 4

但是,我很难破译第 80 行背后的逻辑。我会说

int ace = 0, two = 1, three = 2, ....;

我会将您的第 78 行更改为

int diamond = 0, heart = 1, club = 2, spade = 3;

在 CS 中,我们喜欢从 0 开始,而不是从 1 开始。我们的电脑也是如此。这样,carda 就会与这些值保持一致。

还有,如果*r同时决定了花色和面值,我说的把80改成就行不通了。*r = 0 给出方 block A,*r = 1 给出红心 A,*r = 2 给出梅花 A,*r = 3 给出黑桃 A,*r = 4 给出两个方 block ,*r = 5 给出两颗心,依此类推。

希望这有帮助。祝你好运!

关于C 中的纸牌游戏。数据类型四舍五入会给出不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35540362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com