⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2091295_ac_0ms_48k.c

📁 北大大牛代码 1240道题的原代码 超级权威
💻 C
字号:
# include <stdio.h>
# include <string.h>

char grid[3][4];

int win(char ch)
{
	if(grid[1][1]==ch)
	{
		if(grid[0][0]==grid[2][2]&&grid[0][0]==ch)
			return 1;
		if(grid[0][1]==grid[2][1]&&grid[0][1]==ch)
			return 1;
		if(grid[1][0]==grid[1][2]&&grid[1][0]==ch)
			return 1;
		if(grid[0][2]==grid[2][0]&&grid[0][2]==ch)
			return 1;
	}
	if(grid[0][0]==ch)
	{
		if(grid[0][1]==grid[0][2]&&grid[0][1]==ch)
			return 1;
		if(grid[1][0]==grid[2][0]&&grid[1][0]==ch)
			return 1;
	}
	if(grid[2][2]==ch)
	{
		if(grid[2][1]==grid[2][0]&&grid[2][0]==ch)
			return 1;
		if(grid[0][2]==grid[1][2]&&grid[0][2]==ch)
			return 1;
	}
	return 0;
}
void ans(char ans[])
{
	int i, j;
	int numx, numo;
	
	numx = numo = 0;
	for(i = 0; i < 3; i++)
		for(j = 0; j < 3; j++)
		{
	    	grid[i][j] = ans[i*3+j];
	    	if(grid[i][j]=='X')
		    	numx++;
		    if(grid[i][j]=='O')
			   	numo++;
		}
		if(!win('X')&&!win('O')&&(9-numx-numo))
		{
			printf("invalid\n");
			return ;
		}
		if(win('X'))
		{
			if(win('O'))
				printf("invalid\n");
			else
				if(numx==numo+1)
					printf("valid\n");
				else
					printf("invalid\n");
		}
		else
		{
			if(win('O'))
			{
				if(numx==numo)
					printf("valid\n");
				else
					printf("invalid\n");
			}
			else
			{
				if(numx==numo||numx==numo+1)
					printf("valid\n");
				else
					printf("invalid\n");
			}
		}
}

int main()
{
	char str[10];

	while(scanf("%s",str)==1&&strcmp(str,"end")!=0)
		ans(str);
	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -