我已经编写了一个棋盘游戏程序。我的问题是一个功能,因此某些字段会将播放器向后或向前传输。显然我没做过。

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/

10-09 04:09