我不知道如何使用指针从函数spr()获取函数main中的“ win”值。我是否应该再定义一个var例如resullt并将其写为:
bool *result;
result=&win;
整个程序应该可以正常工作,但是我无法使用指针进行管理。 你怎么看?感谢您的帮助!
bool spr(char arr[3][3], bool *win)
{
if(arr[0][0]==arr[0][1] && arr[0][1]==arr[0][2] || arr[1][0]==arr[1][1] && arr[1][1] ==arr[1][2] || arr[2][0]==arr[2][1] && arr[2][1]==arr[2][2])
{
*win=true;
}
else if(arr[0][0]==arr[1][0] && arr[1][0]==arr[2][0] || arr[0][1]==arr[1][1] && arr[1][1]==arr[2][1] || arr[0][2]==arr[1][2] && arr[1][2]==arr[2][2])
{
*win=true;
}
else if(arr[0][0]==arr[1][1] && arr[1][1]==arr[2][2] || arr[0][2]==arr[1][1] && arr[1][1]==arr[2][0])
{
*win=true;
}
return *win;
printf("wygrales");
}
int main()
{
char arr[3][3]={{' ',' ',' '},{' ',' ',' '}};
int x1,x2,y1,y2;
int kolejka=0;
printf("GRA W KOLKO I KRZYZYYK!");
Sleep(2000);
system("cls");
while((&win)!=true || kolejka <=9)
{
printf(" KOLKO: Wprowadz wspodlrzedne: \n");
scanf("%d",&x1);
scanf("%d",&y1);
arr[x1][y1]='O';
spr(arr,&win);
wypisz(arr);
printf("KRZYZYK: Wprowadz wspolrzedne:\n ");
scanf("%d",&x2);
scanf("%d",&y2);
arr[x2][y2]='X';
spr(arr,&win);
wypisz(arr);
kolejka++;
}
}
答案 0 :(得分:0)
您不会在任何地方宣布胜利。顺便说一下,printf("wygrales");
永远不会在您从函数返回之前到达。
int main()
{
...
bool win = false;
...
while(!win || kolejka <=9)
...
但是您不需要传递指针来赢得函数spr
。如果您的长if
在函数结尾处正常或错误,则只需返回true即可。您根本不需要此指针。
您需要更改
spr(arr,&win);
-> win = spr(arr);
像我回答的第一部分一样,在主体上宣布胜利;