二维数组
- int a[3][5];
- 通常理解为a是一个3行5列的矩阵
![在这里插入图片描述](https://img-blog.csdnimg.cn/ffaa4f39ee2542fa8de19a789971a5e9.png)
二维数组的遍历
for ( i = 0; i < 3; i++ ) {
for ( j = 0; j < 5; j++) {
a[i][j] = i*j;
}
}
- a[i][j]是一个int
- 表示第i行第j列上的单元
二维数组的初始化
int a[][5] = {{0,1,2,3,4},
{2,3,4,5,6},
};
- 列数是必须给出的,行数可以由编译器来数
- 每行一个{},逗号分隔
- 最后的逗号可以存在,有古老的传统
- 如果省略,表示补零
- 也可以用定位 (*C99 ONLY)
tic-tac-toe 代码(检查用)
const int size = 3;
int board[size][size];
int i, j;
int numofX;
int numofo;
int result = -1;
for ( i = 0; i < size; i++ )
{
for ( j = 0; j < size; j++ )
{
scanf("%d", &board[i][j]);
}
}
for ( i = 0; i < size && result == -1; i++ )
{
numofo = numofX = 0;
for ( j = 0; j < size; j++ )
{
if ( board[i][j] == 1 )
{
numofX ++;
}
else
{
numofo ++;
}
}
if ( numofo == size )
{
result = 0;
}
else if ( numofX == size )
{
result = 1;
}
}
if ( result == -1 )
{
for ( j = 0; j < size && result == -1; j++)
{
numofo = numofX = 0;
for ( i = 0; i < size; i++ )
{
if ( board[i][j] == 1 )
{
numofX ++;
}
else
{
numofo ++;
}
}
if ( numofo == size )
{
result = 0;
}
else if ( numofX == size )
{
result = 1;
}
}
numofo = numofX = 0;
for ( i = 0; i < size; i++ )
{
if ( board[i][i] == 1 )
{
numofX ++;
}
else
{
numofo ++;
}
}
if ( numofo == size )
{
result = 0;
}
else if ( numofX == size )
{
result = 1;
}
numofo = numofX = 0;
for ( i = 0; i < size; i++ )
{
if ( board[i][size-i-1] == 1 )
{
numofX ++;
}
else
{
numofo ++;
}
}