微笑


私信TA

用户名:84491135

访问量:9385

签 名:

一只萌新

等  级
排  名 1388
经  验 2824
参赛次数 2
文章发表 9
年  龄 0
在职情况 学生
学  校 华南师范大学
专  业 软件工程

  自我简介:

一只萌新

解题思路:


分别判断每一段是否合法即可


注意事项:


1的ASCII码值是49


参考代码:

#include <stdio.h>
#include <ctype.h>//使用isdigit函数
int main()
{
    char s[31];//接收字符串
    while(scanf("%s", s) != EOF)
    {
        int flag = 1;
        int sum = 0;//代表每一段的数字
        for(int i=0; i<30; i++)
        {
            if(s[i] == '\0' || s[i] == '.')
            {
                if(sum>255)
                    flag = 0;
                sum = 0;//一段结束,重置
                if(s[i] == '\0')
                    break;//已经是最后一段,结束
            }
            else if(isdigit(s[i]))//判断是否是数字
            {
                sum = sum*10 + s[i] - 48;//1的ASCII码是49
            }
            else//说明是非法的字符
                flag = 0;
        }
        printf("%c\n", flag?'Y':'N');
    }
    return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区