试图打印出来自和数组的网格,但实际上没有显示任何内容

时间:2014-04-27 02:46:25

标签: c arrays printing

我是'C'的新手,我正在努力为一个班级项目做这个。我一直试图打印出一个2d数组,但是当我进入我的打印功能时,它只打印出一个新的行字符。我很抱歉,如果代码是可怕的,我仍然试图获得'C'的所有趋势。现在我只想弄清楚如何打印数组,我还不担心其他功能(所以不要担心evalboard或evaluate_cell。)非常感谢!

signed char board [10][10] = {5};
int evaltheboard(void){
    int i,a;
    signed char cell_to_check [1][1] = {0};
    for (a=0;a<=9;a++){
        for (i=0;i<=9;i++){
            cell_to_check[0][0] = board[i][a];
            if (cell_to_check[0][0] != 0){
                evaluate_cell(i,a);
            }
        }
    }
    return 0;
}

int evaluate_cell(int i,int a){
    signed char live_n_cells = 0, empty_x_mod, empty_y_mod;
    signed char x_inc [8] = {0,1,1,1,0,-1,-1,-1}, y_inc [8]={-1,-1,0,1,1,1,0,-1};
    int z, x, y;
    z=x=y=0;

    for (;z<=7;z++){
        if (board[(i+(x_inc[x]))][(a+(y_inc[y]))] != 0){
        ++live_n_cells;
        ++x;
        ++y;
    }
        else(board[(i+(x_inc[x]))][(a+(y_inc[y]))] == 0);
            empty_x_mod = i-(x_inc[x]) ;
            empty_y_mod = a-(y_inc[y]);
            ++x;
        ++y;
    }

    if (live_n_cells >= 3){
        board[i][a] = 0;
    }
    else if (live_n_cells = 0){
    board[i][a] = 0;
    }
    else(live_n_cells = 1 || 2);
        board[empty_x_mod][empty_y_mod] = 1;
    return 0;

}

int print_array(void){\
    int i,a;
    for (a=0;a<=9;a++){
        for (i=0;i<=9;i++){
            printf("%c", board[i][a]);
        }
        printf("%c", board[0][0]);
        printf("\n");
    }
    return 0;
}

int main(void){

    print_array();
    return 0;

}

1 个答案:

答案 0 :(得分:1)

您正在为电路板分配不可打印的字符值,但您正在使用带有字符代码%c的printf。如果您使用%d打印小数值,那么您将获得将数组初始化为的5。