【发布时间】:2015-10-15 17:00:02
【问题描述】:
我有一些代码用于“nim”游戏的浅版本,以便了解 c。这部分是关于打印棋盘游戏,预期输出:
---------------
Box 1: ooo
Box 2: oooo
---------------
每个框中'o'的数量由用户输入并作为参数发送给函数。
代码:
#include <stdio.h>
#define NUMBER_OF_BOXES 2
void printBoard(int number_of_balls_1, int number_of_balls_2)
{
int boxes[NUMBER_OF_BOXES] = {number_of_balls_1, number_of_balls_2};
printf("---------------\n");
printBoxes(boxes);
printf("---------------\n");
}
void printBoxes(int boxes[NUMBER_OF_BOXES])
{
char ball = 'o';
for(int i = 0; i < NUMBER_OF_BOXES; i++)
{
printf("Box %d: ", i+1);
for(int j = 0; j < boxes[i]; ++j)
{
printf("%c", ball);
}
printf("\n");
}
}
它曾经工作过(三个小时前很累),我不知道出了什么问题!现在它给我的只是:
"---------------
Box 0: Box 1: ---------------"
我们将不胜感激!
【问题讨论】:
-
你的
main函数在哪里? -
出于某种原因,您在
boxes[]中使用基于 1 的索引,而不是正常的基于 0 的索引? -
无法使用此代码获得输出
Box 0。请仔细检查并发布与输出"--------------- Box 0: Box 1: ---------------"一致的代码(反之亦然) -
那将无法编译。
NUMBER_OF_BOXES什么都不是。注意:使用一致的缩进(并且不要使用 GNU 样式 - 它只是丑陋)。您还通过for循环i <= ...调用_undefined 行为。