!一道C语言题

求助!一道C语言题
Problem Description
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".

Input
each test case contains two numbers A and B.

Output
for each case, if A is equal to B, you should print "YES", or print "NO".
 我的代码:
#include<stdio.h>
#include<string.h>
int main()
{
int l1,l2,i,j,L1,L2,ll1,ll2,lll1,lll2,f;
char a[1100],b[1100];
while(scanf("%s%s",&a,&b)!=EOF)
{
L1=strlen(a);
L2=strlen(b);
l1=l2=-1;
for(i=0;i<L1;i++)
{
if(a[i]!='0')
{
l1=i;
break;
}
}
for(i=0;i<L2;i++)
{
if(b[i]!='0')
{
l2=i;
break;
}
}
if(l1==-1) l1=L1;
if(l2==-1) l2=L2;
ll1=-1;ll2=-1;
for(i=l1;i<L1;i++)
{
if(a[i]=='.')
{
ll1=i;
break;
}
}
if(ll1==-1) ll1=L1;
for(i=l2;i<L2;i++)
{
if(b[i]=='.')
{
ll2=i;
break;
}
}
if(ll2==-1) ll2=L2;
if(ll1==L1&&ll2==L2)
{
if(L1-l1==L2-l2)
{
j=l2; f=1;
for(i=l1;i<L1;i++)
{
if(a[i]!=b[j])
{
f=0;
printf("NO\n");
break;
}
j++;
}
if(f==1) printf("YES\n");
}
else printf("NO\n");
}
else if(ll1==L1&&ll2!=L2)
{
f=1;
for(i=L2-1;i>ll2;i--)
{
if(b[i]!='0')
{
f=0;
printf("NO\n");
break;
}
}
if(f==1)
{
if(ll1-l1==ll2-l2)
{
f=1;j=l2;
for(i=l1;i<L1;i++)
{
if(a[i]!=b[j])
{
f=0;
printf("NO\n");
break;
}
j++;
}
if(f==1) printf("YES\n");
}
else printf("NO\n");
}
}
else if(ll1!=L1&&ll2==L2)
{
f=1;
for(i=L1-1;i>ll1;i--)
{
if(a[i]!='0')
{
f=0;
printf("NO\n");
break;
}
}
if(f==1)
{
if(ll1-l1==ll2-l2)
{
f=1;j=l1;
for(i=l2;i<L2;i++)
{
if(b[i]!=a[j])
{
f=0;
printf("NO\n");
break;
}
j++;
}
if(f==1) printf("YES\n");
}
else printf("NO\n");
}
}
else 
{
for(i=L1-1;i>=l1;i--)
{
if(a[i]!='0')
{
lll1=i;
break;
}
}
for(i=L2-1;i>=l2;i--)
{
if(b[i]!='0')
{
lll2=i;
break;
}
}
if(lll1-l1==lll2-l2)
{
f=1;j=l2;
for(i=l1;i<=lll1;i++)
{
if(a[i]!=b[j])
{
f=0;
printf("NO\n");
break;
}
j++;
}
if(f==1) printf("YES\n");
}
else printf("NO\n");
}
}
return 0;
}
  想知道哪错了??错误的测试数据举例??
题在:
http://acm.hdu.edu.cn/showproblem.php?pid=2054





------解决方案--------------------
-0001.000 0001 
YES 
-0 0 
YES