请帮忙看一下这个代码哪里出错了,提交OJ显示错误答案50%
int main()
{
char s[101];
int len,a,b,c,i,d,e,f;
int a1,b1,c1,d1;
while(gets(s)!=NULL)
{
a=b=c=d=e=a1=b1=c1=d1=0;
len=strlen(s);
for(i=0;i
{
if(s[i]=='.')
{
a=i;
d++;
break;
}
}
for(i=a+1;i
{
if(s[i]=='.')
{
b=i;
d++;
break;
}
}
for(i=b+1;i
{
if(s[i]=='.')
{
c=i;
d++;
break;
}
}
if(d==3)
{
for(i=0;i
{
if(s[i]<'0'||s[i]>'9')
e=1;
}
for(i=a+1;i
{
if(s[i]<'0'||s[i]>'9')
e=1;
}
for(i=b+1;i
{
if(s[i]<'0'||s[i]>'9')
e=1;
}
for(i=c+1;i
{
if(s[i]<'0'||s[i]>'9')
e=1;
}
if(e==1)
printf("NO\n");
else if(e==0)
{
f=1;
for(i=a-1;i>=0;i--)
{
if(i==a-1)
{
a1=s[i]-'0';
f=f10;
}
else
{
a1=a1+(s[i]-'0')f;
f=f10;
}
}
f=1;
for(i=b-1;i>a;i--)
{
if(i==b-1)
{
b1=s[i]-'0';
f=f10;
}
else
{
b1=b1+(s[i]-'0')f;
f=f10;
}
}
f=1;
for(i=c-1;i>b;i--)
{
if(i==c-1)
{
c1=s[i]-'0';
f=f10;
}
else
{
c1=c1+(s[i]-'0')f;
f=f10;
}
}
f=1;
for(i=len-1;i>c;i--)
{
if(i==len-1)
{
d1=s[i]-'0';
f=f10;
}
else
{
d1=d1+(s[i]-'0')f;
f=f10;
}
}
if((a1>=0&&a1<=255)&&(b1>=0&&b1<=255)&&(c1>=0&&c1<=255)&&(d1>=0&&d1<=255)&&(b-a<=4)&&(c-b<=4)&&(len-1-c<=3))
printf("YES\n");
else
printf("NO\n");
}
}
else
printf("NO\n");
}
return 0;
}