gpt4 book ai didi

c - 函数引用返回的变量给出了奇怪的值

转载 作者:太空宇宙 更新时间:2023-11-04 08:19:39 26 4
gpt4 key购买 nike

我最近一直在研究一个刽子手游戏,这个函数应该检查用户在数组中输入的字母(包含一个预定义的单词,例如“BUILDING”)并添加一个计数器(计数)如果字母存在或减少生命(从 5 开始 - 在主要功能中定义 -)如果它不存在。

现在 Count 变量工作正常,但 Lives 变量一直在减少,即使字母存在并且它不仅减少 1,而且减少的数量更大,导致相当大的负数。

这是代码,在此先感谢:

void Checkf(char X,int r,int Length,char *Hidden, int *Lives,int *Count)
{
int i;
for (i=0;i<Length;i++)
{
if (X==Words[r][i] && Hidden[i]=='*')
{
Hidden[i] = X;
*Count = *Count + 1;
}
else if (X!=Words[r][i] && Hidden[i]=='*')
*Lives = *Lives - 1;
}
}

最佳答案

出现该行为是因为您(可选)在循环的每次迭代中减少了 Lives 的值。您可以添加一个变量来指示是否找到了字母,然后在循环结束后减少 Lives 的值,如下所示:

void Checkf(char X,int r,int Length,char *Hidden, int *Lives,int *Count)
{
int i;
unsigned char found = 0;
for (i=0;i<Length;i++)
{
if (X==Words[r][i] && Hidden[i]=='*')
{
Hidden[i] = X;
*Count = *Count + 1;
found = 1;
}
}
if (!found)
{
*Lives -= 1;
}
}

关于c - 函数引用返回的变量给出了奇怪的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33974821/

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