解题思路:每个位置其实都有8种走法,但是如果出界则不计
注意事项:getchar(),还有那个数组ch要多留个位置存放'\0'
参考代码:
#include
using namespace std;
int main()
{
int go[8][2]={{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1}};
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
char ch[3];
cin>>ch;
getchar();
int sum=0;
int nx,ny;
ny=ch[1]-'0';
switch(ch[0])
{
case 'a':
nx=1;break;
case 'b':
nx=2;break;
case 'c':
nx=3;break;
case 'd':
nx=4;break;
case 'e':
nx=5;break;
case 'f':
nx=6;break;
case 'g':
nx=7;break;
case 'h':
nx=8;break;
}
int x,y;
for(int j=0;j<8;j++)
{
x=nx+go[j][0];
y=ny+go[j][1];
if(x>=1&&x<=8&&y>=1&&y<=8)sum++;
}
cout<
}
}