我已经编写了一个棋盘游戏程序。我的问题是一个功能,因此某些字段会将播放器向后或向前传输。显然我没做过。
int numbers()
{
int maxscore;
int numbers[10];
maxscore = enter();
srand(time(NULL));
int nonumbers[3] = {0, 1, maxscore}; //to initialize the scores there shouldn't be a badfield
numbers[10] = rand() % maxscore + 1;
if(numbers[10] == nonumbers[3])
{
numbers[10] = rand() % maxscore + 1;
}
return numbers;
}
int badfields = numbers();
if(score[i] == badfields)
{
printf("Player %d. goes 5 fields backwards", playershown);
score[i] = score[i] - 5;
printf("This player is now in %d Field", score[i]);
}
我必须以某种方式重复输入最高分数的过程。
最佳答案
我不会直接回答“问题”,因为没有要回答的“问题”。正如其他人在评论中指出的那样,您需要更加具体,并提供对问题的正确描述。但是我仍然可以提供以下反馈:
在我看来,您不太了解数组及其索引。例如,此行应为您提供细分错误,或至少与一个未知值进行比较:
if(numbers[10] == nonumbers[3])
这是因为您的
nonumbers
数组具有3个元素,因此应将它们寻址为nonumbers[0]
,nonumbers[1]
或nonumbers[2]
(或者通常,如Weather Vane在注释中从nonumbers[0]
到nonumbers[array_lenght-1]
)。 nonumbers[3]
将访问内存中的未定义位置。您的问题可能与此有关。请注意,我和任何人都不会审阅您的整个代码
查找错误。如上所述,请更具体。
另外,您确定摆脱了所有编译器错误吗?因为在您的代码中,您还有一个未初始化的变量
i
。为确保您摆脱了所有潜在的讨厌的错误,请打开终端(假设您使用的是Linux)并使用以下命令来编译程序:gcc *.c -Wall -Wextra -o program
然后运行:
./program
关于c - 棋盘游戏功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30832149/