game.h//这是头文件
#define ROW 3
#define COL 3
#include<stdio.h>
void display_board(char board[ROW][COL], int row, int col);
void initboard(char board[ROW][COL], int row, int col);
game.c //里面有定义
#include"game.h"
void initboard(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
board[row][col] = ' '
}
}
}
void displayed_board(char board[ROW][COL], int row, int col)
{
int a = 0;
int b = 0;
for (a = 0; a < row; a++)
{
for (b = 0; b < col; b++)
{
printf(" %c ", board[a][b]);
if (b < col - 1)
printf("|");
}
printf("\n");
if (a < row - 1)
{
for (b = 0; b < col; b++)
{
printf("---");
if (b < col - 1)
printf("|");
}
printf("\n");
}
}
}
test.c //测试
#include"game.h"
//#include"game.c"
void menu()
{
printf("***************************************\n");
printf("***** 1.PLAY 0.EXIT ****\n");
printf("***************************************\n");
}
void game()
{
char board[ROW][COL] = { 0 };
initboard(board, ROW, COL);
displayed_board(board, ROW, COL);
}
int main()
{
menu();
int input = 0;
scanf_s("%d", &input);
do
{
switch (input)
{
case 1:
printf("三子棋=>\n");
game();
break;
case 2:
printf("输入错误!\n");
break;
default:
break;
}
} while (0);
return 0;
}
#include"game.h"
//#include"game.c"
void menu()
{
printf("***************************************\n");
printf("***** 1.PLAY 0.EXIT ****\n");
printf("***************************************\n");
}
void game()
{
char board[ROW][COL] = { 0 };
initboard(board, ROW, COL);
displayed_board(board, ROW, COL);
}
int main()
{
menu();
int input = 0;
scanf_s("%d", &input);
do
{
switch (input)
{
case 1:
printf("三子棋=>\n");
game();
break;
case 2:
printf("输入错误!\n");
break;
default:
break;
}
} while (0);
return 0;
}
#include"game.h"
//#include"game.c"
void menu()
{
printf("***************************************\n");
printf("***** 1.PLAY 0.EXIT ****\n");
printf("***************************************\n");
}
void game()
{****
char board[ROW][COL] = { 0 };
initboard(board, ROW, COL);
displayed_board(board, ROW, COL);
}//这里显示错误 Run-Time Check Failure #2 - Stack around the variable 'board' was corrupted.
int main()
{
menu();
int input = 0;
scanf_s("%d", &input);
do
{
switch (input)
{
case 1:
printf("三子棋=>\n");
game();
break;
case 2:
printf("输入错误!\n");
break;
default:
break;
}
} while (0);
return 0;
}
#include"game.h"
void menu()
{
printf("***************************************\n");
printf("***** 1.PLAY 0.EXIT ****\n");
printf("***************************************\n");
}
void game()
{
char board[ROW][COL] = { 0 };
initboard(board, ROW, COL);
displayed_board(board, ROW, COL);
}
int main()
{
menu();
int input = 0;
scanf_s("%d", &input);
do
{
switch (input)
{
case 1:
printf("三子棋=>\n");
game();
break;
case 2:
printf("输入错误!\n");
break;
default:
break;
}
} while (0);
return 0;
}
如果是3以下的数的话不数组不就越界了嘛,三子棋嘛,行列都为3啊,数组下标是从0开始的,你那个for循环用的又是<,3的话不就正好执行3次吗?