1846A - Rudolph and Cut the Rope
1846B - Rudolph and Tic-Tac-Toe
首先我的代码是错误的,其次这个代码又不好的地方:
#include <iostream>
using namespace std;
const int N = 4;
char ch[N][N];
int main(){
int t;cin >> t;
while(t --){
for(int i = 1;i <= 3;i ++){
for(int j = 1;j <= 3;j ++){
cin >> ch[i][j];
}
}
//列
if(ch[1][1] == ch[2][1] && ch[1][1] == ch[3][1]){
if(ch[1][1] == '.') cout << "DRAW" << endl;
else cout << ch[1][1] << endl;
goto lz ;
}
if(ch[1][2] == ch[2][2] && ch[1][2] == ch[3][2]){
if(ch[1][2] == '.') cout << "DRAW" << endl;
else cout << ch[1][2] << endl;
goto lz ;
}
if(ch[1][3] == ch[2][3] && ch[1][3] == ch[3][3]){
if(ch[1][3] == '.') cout << "DRAW" << endl;
else cout << ch[1][3] << endl;
goto lz ;
}
//列
if(ch[1][1] == ch[1][2] && ch[1][1] == ch[1][3]){
if(ch[1][1] == '.') cout << "DRAW" << endl;
else cout << ch[1][1] << endl;
goto lz ;
}
if(ch[2][1] == ch[2][2] && ch[2][1] == ch[2][3]){
if(ch[2][1] == '.') cout << "DRAW" << endl;
else cout << ch[2][1] << endl;
goto lz ;
}
if(ch[3][1] == ch[3][2] && ch[3][1] == ch[3][3]){
if(ch[3][1] == '.') cout << "DRAW" << endl;
else cout << ch[3][1] << endl;
goto lz ;
}
//对角线
if(ch[1][1] == ch[2][2] && ch[1][1] == ch[3][3]){
if(ch[1][1] == '.') cout << "DRAW" << endl;
else cout << ch[1][1] << endl;
goto lz;
}
if(ch[1][3] == ch[2][2] && ch[1][3] == ch[3][1]){
if(ch[1][3] == '.') cout << "DRAW" << endl;
else cout << ch[1][3] << endl;
goto lz ;
}
lz:;
}
return 0;
}
相比使用goto,更好的一种方式是用一个变量存储答案,然后最后一个输出端口