解题思路:1.输入地址

2.scanf函数返回正确数据个数
3.吃掉输入错误的数据,跟多出来的字符

4.如果没有错误字符,但是输入的正确数据不满四个就输出N

5.如果没有以上情况,当满足条件时输出Y,条件不满则N
注意事项:

参考代码:

#include<stdio.h>
main()
{
	int k,a,b,c,d;
	char s[100];
	while(~(k=scanf("%d.%d.%d.%d",&a,&b,&c,&d)))//遇到错误时返回0取反为-1, 输入几个正确数据就返回几
	{
		gets(s);//吃掉输入错误的字符跟多出来的字符
		if(s[0]!='\0')//如果有错误字符跟多余字符就输出N
		{
		    printf("N\n");
		    continue;
		}
		else if(k<4)//如果没有错误字符,但是输入的正确数据不满四个就输出N
		{
			printf("N\n");
			continue; 
		}
		else if(a>=0&&a<=255&&b>=0&&b<=255&&c>=0&&c<=255&&d>=0&&d<=255)//如果没有以上情况,当满足条件时输出Y,条件不满则N
		printf("Y\n");
		else
		printf("N\n");
	}
}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

cdsg 1年前 回复TA
秀啊,收藏了