作业帮 > 综合 > 作业

北大acm1657题为什么老是wa,测试时是对的?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 11:40:59
北大acm1657题为什么老是wa,测试时是对的?
#include
#include
main()
{
int i,j,n,w,x,y;
char a[5],b[5];
scanf("%d",&n);
while(n)
{
scanf("%s%s",a,b);
\x05x=fabs(b[0]-a[0]);
\x05y=fabs(b[1]-a[1]);
if(x==y&&x==0&&y==0)
printf("0 0 0 0\n");
else if(x==y&&x!=0&&y!=0)
{
\x05 printf("%d 1 2 1\n",x);\x05
}\x05
else if(x==0&&y!=0)
printf("%d 1 1 Inf\n",y);
else if(y==0&&x!=0)
printf("%d 1 1 Inf\n",x);
else if(x!=0&&y!=0&&x!=y)
{
\x05 if(x>y)
w=x;
else
w=y;
printf("%d 2 2 Inf\n",w);
}
n--;
} \x05\x05
}
判断逻辑有问题,我修改了你的代码,AC
#include
#include
#define max(a,b)(a>b?a:b)
int main()
{
int i,j,n,w,x,y;
char a[5],b[5];
scanf("%d",&n);
while(n--)
{
scanf("%s %s",a,b);
\x05x=fabs(b[0]-a[0]);
\x05y=fabs(b[1]-a[1]);
if(x==0&&y==0){
\x05\x05\x05printf("0 0 0 0\n");
\x05\x05\x05continue;
\x05\x05}
\x05\x05else{
\x05\x05\x05printf("%d",max(x,y));
\x05\x05\x05if(x==0||y==0||x==y)printf(" 1");
\x05\x05\x05else printf(" 2");
\x05\x05\x05if(x==0||y==0)printf(" 1");
\x05\x05\x05else printf(" 2");
\x05\x05\x05if(x==y)printf(" 1\n");
\x05\x05\x05else if(abs(x-y)%2!=0)printf(" Inf\n");
\x05\x05\x05else printf(" 2\n");
\x05\x05}
}
return 0;
}