Compile Error 这个问题非常困扰我~在我的机器上编译过去了~但是在poj上过不去~~求c语言高手解答
代码#include<stdio.h>#include<math.h>voidmain(){chara[4],b[4];intx,y,n,i;while(scanf("%...
代码
#include<stdio.h>
#include<math.h>
void main()
{
char a[4],b[4];
int x,y,n,i;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%s %s",a,b);
x=abs(a[0]-b[0]);
y=abs(a[1]-b[1]);
if(x==0 && y==0)
printf("0 0 0 0\n");
else
{
if(x<y)
printf("%d",y);
else
printf("%d",x);
if(x==y||x==0||y==0)
printf(" 1");
else
printf(" 2");
if(x==0||y==0)
printf(" 1");
else
printf(" 2");
if(abs(x-y)%2!=0)
printf(" Inf\n");
else if(x==y)
printf(" 1\n");
else
printf(" 2\n");
}
}
}
}
这个问题非常困扰我~在我的机器上编译过去了~但是在poj上过不去~~求c语言高手解答 展开
#include<stdio.h>
#include<math.h>
void main()
{
char a[4],b[4];
int x,y,n,i;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%s %s",a,b);
x=abs(a[0]-b[0]);
y=abs(a[1]-b[1]);
if(x==0 && y==0)
printf("0 0 0 0\n");
else
{
if(x<y)
printf("%d",y);
else
printf("%d",x);
if(x==y||x==0||y==0)
printf(" 1");
else
printf(" 2");
if(x==0||y==0)
printf(" 1");
else
printf(" 2");
if(abs(x-y)%2!=0)
printf(" Inf\n");
else if(x==y)
printf(" 1\n");
else
printf(" 2\n");
}
}
}
}
这个问题非常困扰我~在我的机器上编译过去了~但是在poj上过不去~~求c语言高手解答 展开
展开全部
每次使用scanf()前,特别是以字符或字符串方式时,需要使用flush() 刷新缓存。
追问
什么~~是那个问题吗 原来没有遇见过啊 怎么改啊 不会
追答
fflush(stdin) ; 清空输入缓冲区,通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin);)
/*stdin就是标准输入 std即standard(标准),in即input(输入),合起来就是标准输入 */
以你代码为例,需要在scanf("%s %s",a,b);之前添加fflush(stdin) ;
即修改后代码为:
。。。
for(i=0;i<n;i++)
{
fflush(stdin) ; //增加此处语句,做清空缓存。
scanf("%s %s",a,b);
。。。
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询