#include<stdio.h>
#include<string.h>
int main()
{ char str[31];
int s,i,j=0;
int st[3];
while(scanf("%s",&str)!=EOF)
{ s=strlen(str);
if(str[0]!='1'&&str[0]!='2')//开头第一个不是1或2,结束
{ printf("N\n");
goto loop;
}
for(i=0;i<s;i++)
{ if((str[i]<48||str[i]>57)&&str[i]!='.')//输入中有任意一个不是点的字符,结束
{
printf("N\n");
goto loop;
}
if(str[i]=='.')
{ st[j]=i;//记下三个点在数组的位置
if(str[st[j]+1]=='0')每个点的下一位以零开头结束
{
printf("N\n");
goto loop;
}
j++;
}
}
if(st[0]>3)第一个点前的部分判断是不是在255间
{
printf("N\n");
goto loop;
}
else if(st[0]==3)
{ if((str[0]*100+str[1]*10+str[2])>255)
{
printf("N\n");
goto loop;
}
}
if(str[st[1]+1]==0||str[st[2]+1]==0)
{
printf("N\n");
goto loop;
}
if((st[1]-st[0]-1)>3)//间距大于三,说明是4位数,同上
{
printf("N\n");
goto loop;
}
else if((st[1]-st[0]-1)==3)
{if((str[st[0]+1]*100+str[st[0]+2]*10+str[st[0]+3])>255)
{
printf("N\n");
goto loop;
}
}
if((st[2]-st[1]-1)>3)同上
{
printf("N\n");
goto loop;
}
else if((st[2]-st[1]-1)==3)
{if((str[st[1]+1]*100+str[st[1]+2]*10+str[st[1]+3])>255)
{
printf("N\n");
goto loop;
}
}
printf("Y\n");
loop: i=0;//做跳转的语句
}
}
0.0分
2 人评分
川哥的吩咐 (C语言代码)浏览:926 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:658 |
打水问题 (C语言代码)浏览:1147 |
用筛法求之N内的素数。 (C语言代码)浏览:685 |
关于C语言变量位置的问题浏览:294 |
回文数字 (C语言代码)浏览:2538 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:742 |
字符串的输入输出处理 (C语言代码)浏览:1084 |
理财计划 (C语言代码)浏览:494 |
C二级辅导-统计字符 (C语言代码)浏览:695 |