对于数组而言,我一直都会遇到下述错误:在selectLocation函数中,下标值既不是指针也不是矢量。这只是什么是一个井字棋计划的开始。我究竟做错了什么?既不是参数,也不是指针
void selectLocation(char board[],int choice);
void displayBoard(char[]);
#include <stdio.h>
int main()
{
char board[3][3];
int i;
for (i=0;i<8;i++)
{
displayBoard(board);
selectLocation(board,i);
}
return 0;
}
void displayBoard(char board[])
{
printf(" 0 1 2");
printf("\n --- --- --- ");
printf("\n0 | | | |");
printf("\n --- --- --- ");
printf("\n1 | | | |");
printf("\n --- --- --- ");
printf("\n2 | | | |");
printf("\n --- --- --- ");
}
void selectLocation(char board[],int choice)
{
int x,y;
printf("Enter a location for X or O in x,x format");
printf("\nex. '0,1' '1,2'");
scanf("%d,%d",&x,&y);
if (choice%2==1)
{
board[x][y]='X';
}
else
{
board[x][y]='O';
}
}
LearningC给你正确的答案,另一个问题是,你不检查结果'scanf'(如果用户输入“abc,def”,你可能会遇到麻烦) –