题目:
思路:
1.利用打表的方法,可能四种情况会赢:行,列,主对角线,次对角线
代码如下(注意数组一定要初始化,刚开始我没有初始化,以为会默认为0,其实不会,所以以后遇到数组一定要初始化
它是随机的初始化为0
)
#include<cstdio> #include<cstring> #include<iostream> using namespace std; int main(){ int hang[10]={0, 1,1,1, 2,2,2, 3,3,3}; int lie[10]={0, 4,5,6, 4,5,6, 4,5,6}; int x1[10]={0, 7,0,0, 0,7,0, 0,0,7 }; int x2[10]={0, 0,0,8, 0,8,0, 8,0,0 }; string s; cin>>s; int a[2][9]; for(int i=0;i<2;i++) for(int j=0;j<9;j++) a[i][j]=0; for(int i=0;i<s.size();i++) { a[i%2][hang[s[i]-'0']]++; a[i%2][lie[s[i]-'0']]++; a[i%2][x1[s[i]-'0']]++; a[i%2][x2[s[i]-'0']]++; } // cout<<a[0][6]<<endl; for(int i=1;i<9;i++){ if(a[0][i]==3) { cout<<"xiaoa wins."; return 0; } else if(a[1][i]==3){ cout<<"uim wins."; return 0; } } cout<<"drew."; return 0; }