BC141. 井字棋
描述
KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。
输入描述
三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。输出描述
如果KiKi获胜,输出“KiKi wins!”;示例1
输入:
K O B O K B B O K
输出:
KiKi wins!
C 解法, 执行用时: 1ms, 内存消耗: 308KB, 提交时间: 2021-09-13
#include<stdio.h> int main(){ char m[3][3]; for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ scanf("%c ",&m[i][j]); } } if(m[0][0]==m[1][1]&&m[0][0]==m[2][2]){ if(m[0][0]=='K') goto K; else if(m[0][0]=='B') goto B; } if(m[0][2]==m[1][1]&&m[0][2]==m[2][0]){ if(m[0][2]=='K')goto K; else if(m[0][2]=='B')goto B; } for(int i=0;i<3;i++){ if(m[i][0]==m[i][1]&&m[i][0]==m[i][2]){ if(m[i][0]=='K')goto K; else if(m[i][0]=='B')goto B; } if(m[0][i]==m[1][i]&&m[0][i]==m[2][i]){ if(m[0][i]=='K')goto K; else if(m[0][i]=='B')goto B; } } printf("No winner!\n"); return 0; K: printf("KiKi wins!\n"); return 0; B: printf("BoBo wins!\n"); return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 308KB, 提交时间: 2021-07-31
#include<stdio.h> int main() { char arr[3][3]; for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { scanf(" %c",&arr[i][j]); } } for(int i = 0; i < 3; i++) { if(arr[i][0]==arr[i][1]&&arr[i][0]==arr[i][2]) { if(arr[i][0]=='K') { printf("KiKi wins!"); return 0; } else if(arr[i][0]=='B') { printf("BoBo wins!"); return 0; } } } for(int j = 0; j < 3; j++) { if(arr[0][j]==arr[1][j]&&arr[0][j]==arr[2][j]) { if(arr[0][j]=='K') { printf("KiKi wins!"); return 0; } else if(arr[0][j]=='B') { printf("BoBo wins!"); return 0; } } } if(arr[0][0]==arr[1][1]&&arr[0][0]==arr[2][2]) { if(arr[0][0]=='K') { printf("KiKi wins!"); return 0; } else if(arr[0][0]=='B') { printf("BoBo wins!"); return 0; } } if(arr[0][2]==arr[1][1]&&arr[0][2]==arr[2][0]) { if(arr[0][2]=='K') { printf("KiKi wins!"); return 0; } else if(arr[0][2]=='B') { printf("BoBo wins!"); return 0; } } printf("No winner!"); }
C 解法, 执行用时: 1ms, 内存消耗: 324KB, 提交时间: 2021-07-31
#include <stdio.h> int main() { char arr[3][3]; int i, j; int flag = 0; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) { arr[i][j] = getchar(); getchar(); } } for(i = 0; i < 3; i++) { if(arr[i][0] == 'K' && arr[i][1] == 'K' && arr[i][2] == 'K') { flag = 1; break; } } for(i = 0; i < 3; i++) { if(arr[0][i] == 'K' && arr[1][i] == 'K' && arr[2][i] == 'K') { flag = 1; break; } } if(arr[0][0] == 'K' && arr[1][1] == 'K' && arr[2][2] == 'K') flag = 1; if(arr[0][2] == 'K' && arr[1][1] == 'K' && arr[2][0] == 'K') flag = 1; for(i = 0; i < 3; i++) { if(arr[i][0] == 'B' && arr[i][1] == 'B' && arr[i][2] == 'B') { flag = -1; break; } } for(i = 0; i < 3; i++) { if(arr[0][i] == 'B' && arr[1][i] == 'B' && arr[2][i] == 'B') { flag = -1; break; } } if(arr[0][0] == 'B' && arr[1][1] == 'B' && arr[2][2] == 'B') flag = -1; if(arr[0][2] == 'B' && arr[1][1] == 'B' && arr[2][0] == 'B') flag = -1; if(flag == 1) printf("KiKi wins!\n"); else if(flag == 0) printf("No winner!\n"); else printf("BoBo wins!\n"); return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 328KB, 提交时间: 2021-07-27
#include<stdio.h> int main() { char arr[3][3]={0}; for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { scanf("%c",&arr[i][j]); getchar(); } } int a=0,b=0,c=0,d=0; char ch=0; int i=0,j=0; int n=3; for( i=0;i<n;i++) { for( j=0;j<n-1;j++) { if(arr[i][j]==arr[i][j+1]) { ch=arr[i][j]; a++; if(a==n-1) break; } if(arr[j][i]==arr[j+1][i]) { ch=arr[j][i]; b++; } } if(a==n-1) { break; } a=0; if(b==n-1) { break; } b=0; } for(j=0 ,i=0;i<n-1;i++,j++) { if(arr[i][j]==arr[i+1][j+1]) { c++; } } for(i=n-1,j=0;i>0;i--,j++) { if(arr[i][j]==arr[i-1][j+1]) { d++; } } if((c==n-1||d==n-1)) ch=arr[(n/2)][(n/2)]; if((a==n-1||b==n-1||c==n-1||d==n-1)&&ch=='K') { printf("KiKi wins!"); } else if((a==n-1||b==n-1||c==n-1||d==n-1)&&ch=='B') { printf("BoBo wins!"); } else { printf("No winner!"); } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 336KB, 提交时间: 2021-08-31
#include <stdio.h> int main(){ char a[3][3]; int i,j; for(i=0;i<3;i++){ for(j=0;j<3;j++){ a[i][j]=getchar(); getchar(); } } int flag=0; for(i=0;i<3;i++){ if(a[i][0]=='K'&&a[i][1]=='K'&&a[i][2]=='K'){ flag=1; break; } } for(i=0;i<3;i++){ if(a[0][i]=='K'&&a[1][i]=='K'&&a[2][i]=='K'){ flag=1; break; } } if(a[0][0]=='K'&&a[1][1]=='K'&&a[2][2]=='K') flag=1; if(a[0][2]=='K'&&a[1][1]=='K'&&a[2][0]=='K') flag=1; if(a[0][0]=='B'&&a[1][1]=='B'&&a[2][2]=='B') flag=-1; if(a[0][2]=='B'&&a[1][1]=='B'&&a[2][0]=='B') flag=-1; for(i=0;i<3;i++){ if(a[i][0]=='B'&&a[i][1]=='B'&&a[i][2]=='B'){ flag=-1; break; } } for(i=0;i<3;i++){ if(a[0][i]=='B'&&a[1][i]=='B'&&a[2][i]=='B'){ flag=-1; break; } } if(flag==1){ printf("KiKi wins!\n"); }else if(flag==0) { printf("No winner!\n"); }else{ printf("BoBo wins!\n"); } return 0; }