这道题简直是太坑了。一开始在本机上测试怎么都对,但是提交之后无论如何都过不了,简直是要绝望。到最后尝试了一下把%c+getchar()换成了%s之后,终于成功AC。太坑了……………………
#include<cstdio>
#include<cstring>
using namespace std;
int boom[11][11],p[11][11]; //boom存的是红方棋子能够吃到的位置,p存的是红方棋子在棋盘上的位置
int n,pa,pb;//n为红方的棋子个数,pa,pb表示黑将在棋盘上的位置
FILE *out;
struct a
{
char ch; //棋子
int pos[3]; //棋子所在的位置
}chess[10];
int check()
{
int i,j,k;
for(i = 1;i <= n;i++)
{
if(chess[i].ch == 'R' || chess[i].ch == 'G')
{
for(j = chess[i].pos[1]+1;j <= 10;j++)
{
boom[j][chess[i].pos[2]] = 1;
if(p[j][chess[i].pos[2]] == 1)
{
break;
}
}
for(j = chess[i].pos[1]-1;j >= 1;j--)
{
boom[j][chess[i].pos[2]] = 1;
if(p[j][chess[i].pos[2]] == 1)
{
break;
}
}
for(j = chess[i].pos[2]+1;j <= 10;j++)
{
boom[chess[i].pos[1]][j] = 1;
if(p[chess[i].pos[1]][j] == 1)
{
break;
}
}
for(j = chess[i].pos[2]-1;j >= 1;j--)
{
boom[chess[i].pos[1]][j] = 1;
if(p[chess[i].pos[1]][j] == 1)