两只眼睛瞪死


私信TA

用户名:ChinEse1

访问量:4613

签 名:

等  级
排  名 12327
经  验 978
参赛次数 1
文章发表 6
年  龄 0
在职情况 学生
学  校 东莞理工学院
专  业

  自我简介:

TA的其他文章

解题思路:

    以'.'为循环判断条件,循环三次,将前三个准换成相应的数字,判断是否合法,如果是字母则退出循环;再根据标志Y判断是否进入循环判断最后一个数合法.



注意事项:



参考代码:

#include<stdio.h>

int main()

{

    int i,j,temp,num,Y,count;

    char s[31];

    while(scanf("%s",s)!=EOF)

    {

        Y=0;

        for(j=1;j<=3;j++)

        {

            num=0;

            for(i=0;s[i]!='.';i++)

            {

                if((s[i]>='a' && s[i]<='z')|| (s[i]>='A' && s[i]<='Z')) { Y=0;break; }

                else

                {

                    temp=s[i]-48;

                    num=num*10+temp;

                }

            }

            if((s[i]>='a' && s[i]<='z')|| (s[i]>='A' && s[i]<='Z')) { Y=0;break; }

            if(num>=0 && num<=255) Y=1;

            else

            {

                Y=0;break;

            }

        }

        if(Y==1)

        {

            count=0;

            for(i=0;s[i]!='\0';i++)

            {

                if(count==3)

                {

                    num=0;

                    for(j=i;s[j]!='\0';j++)

                    {

                        if((s[i]>='a' && s[i]<='z')|| (s[i]>='A' && s[i]<='Z')) 

                        { Y=0;break; }

                        else

                        {

                            temp=s[i]-48;

                            num=num*10+temp;

                        }

                    }

                    if((s[i]>='a' && s[i]<='z')|| (s[i]>='A' && s[i]<='Z')) { Y=0;break; }

                    if(num>=0 && num<=255) Y=1;

                    else 

                    {

                     Y=0;break;

                     }

                }

                if(s[i]=='.') count++;

            }

        }

        if(Y==1) printf("Y\n");

        else printf("N\n");

    }

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »