标签:位置 inf i++ 距离 存储 ber 字符数组 std int
c语言解决
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,i;
scanf("%d",&num);
for(i=0;i<num;i++)
{
char begin[5],end[5];//用begin和end分别存储棋子的起止位置
scanf("%s%s",begin,end);//begin 和 end 已经是地址
int x,y;//用x和y分别存储起止位置之间x方向和y方向上的距离
x = abs(begin[0]-end[0]);
y = abs(begin[1]-end[1]);
if(x==0&&y==0) printf("0 0 0 0\n");//起止位置相同,所有棋子都走0步
else
{
int sum,number;
sum = abs(x-y);
number = x>y? x:y;
//对于王来说
printf("%d ",number);
//对于后来说
if(x==y||x==0||y==0)printf("1 ");
else printf("2 ");
//对于车来说
if(x==0||y==0)printf("1 ");
else printf("2 ");
//对于象来说
if(sum%2!=0)printf("Inf\n");
else if(x==y) printf("1\n");
else printf("2\n");
}
}
}
遇到的问题:
如何存储字符:运用两个字符数组存储
scanf("%s%s",begin,end) 给两个字符数组赋值
poj-1657 Distance on Chessboard
标签:位置 inf i++ 距离 存储 ber 字符数组 std int
原文地址:https://www.cnblogs.com/gufana/p/10305891.html