gpt4 book ai didi

C 骰子游戏

转载 作者:可可西里 更新时间:2023-11-01 11:17:50 26 4
gpt4 key购买 nike

我想创建一个骰子游戏,但它总是说我的猜测是错误的,我不知道为什么。我终于明白如何使 rand 函数实际上是随机的 btw :D我认为这是因为数组没有正确存储字符串。

int main()
{

srand(time(NULL));
int dice1 = 1, dice2 = 1, dice3 = 1, sum, key = 0;
int dice4 = 1, dice5 = 1, dice6 = 1, sum2;
char randomnumber[10];

printf("Diceroll-game \n\n");
printf("The first sum is:\n");


dice1 = (rand()%6 + 1);
dice2 = (rand()%6 + 1);
dice3 = (rand()%6 + 1);

sum = dice1 + dice2 + dice3;

printf("%d\n", sum);

printf("Will the next sum of 3 dices be higher(hi), lower (lo) or the same(sa) (hi, lo, sa)?\n");
printf("Type hi, lo or sa\n");

scanf("%c \n", &randomnumber);

dice4 = (rand()%6 + 1);
dice5 = (rand()%6 + 1);
dice6 = (rand()%6 + 1);

sum2 = dice4 + dice5 + dice6;

if (randomnumber == "hi" && sum2 > sum) {
printf("You were right !\n\a");

}else {
if (key == 0) {
printf("You were wrong.");
key = 1;
}
}


if (randomnumber == "lo" && sum2 < sum) {
printf("You were right !\n\a");

}else {
if (key == 0) {
printf("You were wrong.");
key = 1;
}
}


if (randomnumber == "sa" && sum2 == sum) {
printf("You were right !\n\a");

}else {
if (key == 0) {
printf("You were wrong.");
key = 1;
}
}



printf("\nIt's %d", sum2);

return 0;

谁能帮帮我。谢谢。

最佳答案

  • 首先,您在这里使用了错误的格式说明符。 %c 用于扫描一个char。您需要对 字符串 使用 %s。使用错误的格式说明符调用 undefined behaviour .

    然后,您提供给 scanf()格式字符串 需要与输入完全匹配。你在那里不需要换行符

    此外,randomnumber 是一个数组,不需要添加 & 而将其用作 scanf() 参数。

    改变

    scanf("%c \n", &randomnumber);

    scanf("%s", randomnumber);
  • 其次,不能使用== 运算符来完成字符串比较。您需要使用 strcmp()比较两个字符串内容。

    改变

    .. randomnumber == "hi" ...

    ..  !strcmp(randomnumber, "hi")   ...

关于C 骰子游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760282/

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