我是'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;
}
答案 0 :(得分:1)
您正在为电路板分配不可打印的字符值,但您正在使用带有字符代码%c
的printf。如果您使用%d
打印小数值,那么您将获得将数组初始化为的5。