我'm in a CS class and I' m试图创建一个tic tac toe程序 . 这是我第一次使用函数,我需要帮助检查一个二维数组,以查看它是否已满'x'或'o' . 我初始化为'_'的所有元素开始,我想要一个返回值为true或false,所以我使用 #include <stdbool.h>
. 这是功能:
bool check_table_full(char board[SIZE][SIZE]){
if(board[0][0] == '_'){
return false;
}else if(board[1][0] == '_'){
return false;
}else if(board[2][0] == '_'){
return false;
}else if(board[0][1] == '_'){
return false;
}else if(board[1][1] == '_'){
return false;
}else if(board[2][1] == '_'){
return false;
}else if(board[0][2] == '_'){
return false;
}else if(board[1][2] == '_'){
return false;
}else if(board[2][2] == '_'){
return false;
}else{
return true;
}
我知道有一个更好的优化,然后使用if else语句,但这只是在我脑中很简单 . 我使用 printf("%s", check_table_full?"true":"false");
来检查它是否应该返回false,因为数组中的所有元素都是'_' . 无论我做什么,它打印都是真的,如果我在printf语句中更改"true",它会打印第一个引号内的任何内容 .
其他所有工作都像SIZE定义,数组定义,我只是不能让这个函数返回false .
对不起,如果这很长,这是我第一次在这里问一个问题 .
3 回答
If 你做
printf("%s", check_table_full?"true":"false");
,你没有调用这个函数 .check_table_full
是该函数的地址 . 你想check_table_full()
您可能希望使用嵌套的for循环 . 我已经学习了C语法而不是C语法,所以语法可能有些偏差 . 示例代码...
遍历矩阵的方法不可扩展,您可以轻松引入错误并且不必要复杂 . 对于任何矩阵大小,我的'检查方法'是2行代码 .
这就是你滚动的方式 - >
(LOL ..用于投票 . )
/一个