void printBoard(int board[8][8])
{
int i,j;
for(i = 0; i<8; i++)
{
for(j = 0; j<8; j++)
{
printf("%d ", board[i][j]);
}
printf("\n");
}
}
int main(){
int i, j;
int board[8][8];
for(i = 0; i<8; i++)
{
for(j = 0; j<8; j++)
{
scanf("%d", &board[i][j]);
}
}
printBoard(board);
为什么以下void函数不能打印二维数组?它只是继续要求输入。我试过它没有这个功能,它仍然无法正常工作。
我们本来打算将它作为家庭作业的一部分。有人可以解释如何解决这个问题吗?
答案 0 :(得分:0)
您的main
正在循环scanf
,这是一个要求用户输入64次的功能。您需要在达到printBoard()
语句之前输入64个值。
答案 1 :(得分:0)
首先,您的printBoard函数不会打印所有数组。 当你解决这个问题时(第8个函数中的第一个循环而不是2个)你会得到你想要的东西,但我建议尝试使用更小的数组,因为你需要输入64个值。
答案 2 :(得分:0)
在嵌套循环中,每次外循环执行时,内循环将执行完成。这意味着scanf
将被称为8 * 8 = 64次。 scanf
从控制台获取输入,这意味着您必须在打印之前将64个值输入控制台。
也许尝试将阵列的大小从8 * 8缩小到更易于管理的东西,比如3 * 3或4 * 4 - 这样你就不必花费一两分钟就可以测试数字
答案 3 :(得分:0)
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // line 70
// ...
}
// ...
}
在#include<stdio.h>
void printBoard(int board[8][8]);
int main(){
int i, j;
int board[8][8];
for(i = 0; i<8; i++)
{
for(j = 0; j<8; j++)
{
scanf("%d", &board[i][j]);
}
}
return 0;
}
void printBoard(int board[8][8])
{
int i,j;
for(i = 0; i<8; i++)
{
for(j = 0; j<8; j++)
{
printf("%d ", board[i][j]);
}
printf("\n");
}
}
for循环中,它是行,i
循环是列,因此循环将是8行和8列,因此它将运行64次,然后它将需要64个输入,并且在scanf完成之后。
答案 4 :(得分:-1)
所以我开始输入这样的值:
00000000 00100000 00001000 00001010 01010000 00020000 00000000 00000000
这似乎不起作用。 然后,我试过了:
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 1 0 1 0
0 1 0 1 0 0 0 0
0 0 0 2 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
它有效。我想这样就算了64个单独的值。 谢谢!