我写了这段代码,但是它说显示板的声明存在类型冲突。它看起来很好。有人可以帮忙吗?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int board[9][9] = {
{0,0,5,9,0,2,3,8,7},
{9,4,0,1,0,7,6,0,2},
{2,8,7,5,3,0,4,0,0},
{0,5,2,3,6,0,0,0,1},
{4,0,9,0,5,1,2,6,8},
{1,0,6,0,2,0,0,3,4},
{5,0,8,4,0,0,1,9,6},
{3,9,0,0,1,8,7,2,0},
{0,6,0,2,9,5,8,0,3}
};
char* board_output = (display_board(board));
printf ("%s", &board_output);
return 0;
}
char* display_board (int board_input[9][9])
{
int i;
int j;
char* output = "";
for (i=0; i<9; i++) {
for (j=0; j<9; j++) {
output = strcat(strcat(output, board_input[i][j]), ", ");
}
output = strcat(output, ", ");
}
return output;
}
由于
卡比尔
答案 0 :(得分:4)
在调用该函数之前需要一个函数声明:
char* display_board (int board_input[9][9]) ;
您还尝试在此处写入字符串文字output
:
strcat(strcat(output, board_input[i][j]), ", "); //this syntax is not readable
//split the calls into
//separate lines
而是为它保留一些记忆
char* output = calloc( 512 , sizeof( char ) ) ;
并且strcat()
需要字符串而不是整数,所以这不正确:strcat(output, board_input[i][j])
可能会有更多错误,首先修复这些错误然后重试。
答案 1 :(得分:1)
在main()
添加此
char* display_board (int board_input[9][9]);
在标题之后