2015-07-24 3 views
-2

У меня есть этот бит кода для мелкой версии игры «nim», чтобы познакомиться c. эта часть о печати настольную игру, ожидаемый результат:printf not printing

--------------- 
Box 1: ooo 
Box 2: oooo 
--------------- 

число «о» х в каждой коробке вводится пользователем и направляется в функцию в качестве параметра.

код:

#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: ---------------" 

help был бы очень благодарен!

+1

Где ваш 'main' функция? – jwodder

+0

Выход, который вы получаете, кажется, является результатом, который вы ожидаете от вашего кода. Можете ли вы объяснить, какой результат вы ожидаете, и почему мы можем объяснить, где ваше недоразумение? –

+2

По какой причине вы используете индекс на основе 1 в 'boxes []' вместо обычного 0? –

ответ

0
#include <stdio.h> 

#define NUMBER_OF_BOXES 2 

void printBoxes(const int boxes[NUMBER_OF_BOXES]) 
{ 
    char ball = 'o'; 
    for(int i = 1; i <= NUMBER_OF_BOXES; i++) 
    { 
     printf("Box %d: ", i); 
     for(int j = 0; j < boxes[i-1]; ++j) 
     { 
      printf("%c", ball); 
     } 
     printf("\n"); 
    } 
} 

void printBoard(const int number_of_balls_1, const int number_of_balls_2) 
{ 
    int boxes[NUMBER_OF_BOXES]= {number_of_balls_1, number_of_balls_2}; 
    printf("---------------\n"); 
    printBoxes(boxes); 
    printf("---------------\n"); 
} 
+0

спасибо! Я пропустил этот индекс. это дает вам ожидаемый результат? потому что он не работает для меня – user5154079

+0

@ user5154079 [DEMO] (http://ideone.com/QvCQxc) – BLUEPIXY

0
#include <stdio.h> 
#define NUMBER_OF_BOXES 2 

void printBoxes(const 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"); 
    } 
} 

void printBoard(const int number_of_balls_1, const 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 main() { 
    printBoard(3, 4); 
} 

Compile:

gcc -std=c99 box.c -o box 

Выход:

--------------- 
Box 1: ooo 
Box 2: oooo 
---------------