解题思路:每个位置其实都有8种走法,但是如果出界则不计

注意事项:getchar(),还有那个数组ch要多留个位置存放'\0'

参考代码:

#include <iostream>

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<<sum<<endl;



}

}


点赞(1)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

zmczmws 2年前 回复TA
@我想睡觉 我复了下来,一共115行
我想睡觉 3年前 回复TA
说实话,这代码不够简洁