1.二维数组的遍历
a[ i, j ]是a[ j ],不能表示二维数组.
2.二维数组的初始化
.数组的列数是必须给出的,行数可以由编译器来数.
.每行一个{ },逗号隔离.
.最后的逗号可以保留,古老的传统.
.如果省略,表示补0.
.也可以固定位(C99 Only)
3.tic - tac - toe 游戏 [ 1-9.cpp ]
.读入一个3x3的矩阵,矩阵中的数字为1表示该位
置上有一个x,为零表示o
.程序判断这个矩阵中是否有获胜的一方,并输出表示
获胜一方的字符x或o,或输出无人获胜.
/*****************************************************************************************
Input a matrix of 3X3, the value of matrix is 1 express the position has a 'X', 0 express 'O'
here is a program to determine whether there is a winner in this matrix, and output the
character representing wining side -- 'X' or 'O'
*****************************************************************************************/
#include <stdio.h>
int main()
{
const int size = 3;
int board[size][size];
int numberofO, numberofX;
int result = -1; //Express no one wins.
//Initialize the board-prime
for(int i=0; i<size; i++)
{
for(int j=0; j<size; j++)
{
scanf("%d", &board[i][j]);
}
}
//Iterate through the rows of prime
if(result == -1)
{
for(int i=0; i<size; i++)
{
numberofX = 0; numberofO = 0;
for(int j=0; j<size; j++)
{
if(board[i][j])
numberofX++;
else
numberofO++;
}
if(numberofO == 3)
{
result = 0;
break;
}
if(numberofX == 3)
{
result = 1;
break;
}
}
}
/*
if(result == -1)
{
for(int i=0; i<size && result=-1; i++)
{
numberofO = 0; numberofX = 0;
for(int j=0; j<size; j++)
{
if(board[i][j])
numberofX++;
else
numberofO++;
}
if(numberofO == size)
result = 0;
if(numberofX == size)
result = 1;
}
}
*/
//Iterate through the column of the array.
if(result == -1)
{
for(int j=0; j<size; j++)
{
numberofO=0; numberofX=0;
for(int i=0; i<size; i++)
{
if(board[i][j])
numberofX++;
else
numberofO++;
}
if(numberofO == 3)
{
result = 0;
break;
}
if(numberofX == 3)
{
result = 1;
break;
}
}
}
//Iterate through the left diagonal of prime.
if(result == -1)
{
numberofX=0; numberofO=0;
for(int i=0, j=0; i<size, j<size; i++,j++)
{
if(board[i][j])
numberofX++;
else
numberofO++;
}
if(numberofO == 3)
{
result = 0;
}
else if(numberofX == 3)
{
result = 1;
}
}
//Iterate through the right diagonal of prime.
if(result == -1)
{
numberofO=0; numberofX=0;
for(int i=1; i<size; i++)
{
for(int j=size; j>0; j--)
{
if(numberofO == 3)
{
result = 0;
break;
}
else if(numberofX == 3)
{
result = 1;
break;
}
}
if(numberofO == 3)
{
result = 0;
break;
}
else if(numberofX == 3)
{
result = 1;
break;
}
}
}
//Output the result.
if(result == 0)
printf("Character of wining side is O!\n");
else if(result == 1)
printf("Character of wining side is X!\n");
else
printf("No one wins!\n");
return 0;
}