pku 1657 棋盘的距离 为什么compiled error呢?

来源:百度知道 编辑:UC知道 时间:2024/06/03 15:42:09
#include "stdio.h"
#include <math.h>

int main()
{
int n,i;
int x,y;
char a[10],b[10];
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%s%s",a,b);
x=b[0]-a[0];
y=b[1]-a[1];
if(x == 0 && y == 0)
printf("0 ");
else
if(x == 0)
printf("%d ",y);
else if(y == 0)
printf("%d ",x);
else
printf("%d ",int(sqrt(x*x + y*y)-1)); //输出王
if(x == 0 && y == 0)
printf("0 0 ");
else
if(x == 0 || y == 0)
printf("1 1 ");
else
printf("1 2 "); //输出 后和车
if(x == 0 && y == 0)
printf("0\n");
else
if(x == 0 || y == 0)
if(int(sqrt(x*x + y*y))%2 == 0)
{
printf("%d ",int(sqrt(x

compiled error可能是编译没通过,你点进去可以看到编译的错误。
给你个AC的代码吧。前几天刚做的。
#include <stdio.h>
#include <math.h>
int main ()
{
int wang,hou,che,xiang,n,x1,x2,y1,y2,i,word;
char a[2];
scanf("%d",&n);
for(i=0;i<n;i++)
{
word=0;
scanf("%s",a);
x1=a[0]-'a'+1;
y1=a[1]-'0';
scanf("%s",a);
x2=a[0]-'a'+1;
y2=a[1]-'0';
wang=abs(x2-x1)>abs(y2-y1)?abs(x2-x1):abs(y2-y1);
if(y2==y1||x2==x1)che=1;
else che=2;
hou=che;
if(abs(y2-y1)==abs(x2-x1))
{
hou=1;
xiang=1;
}
else if(abs(y2+x2-y1-x1)%2==0)xiang=2;
else word=1;
if(x1==x2&&y1==y2)
{
che=0;
hou=0;
xiang=0;
}
printf("%d %d %d ",wang,hou,che);
if(word)printf("Inf\n");
else printf("%d\n",xiang);
}