hdoj 2206 IP的计算
2014-06-02 16:25
429 查看
Problem Description
在网络课程上,我学到了很多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如192.168.100.16,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
但是粗心的我,常常将IP地址写错,现在需要你用程序来判断。
Input
输入有多个case,每个case有一行,不超过100个字符。
Output
对于每个case,判断输入的IP是否正确,如果正确输入YES,否则NO。
Sample Input
Sample Output
在网络课程上,我学到了很多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如192.168.100.16,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
但是粗心的我,常常将IP地址写错,现在需要你用程序来判断。
Input
输入有多个case,每个case有一行,不超过100个字符。
Output
对于每个case,判断输入的IP是否正确,如果正确输入YES,否则NO。
Sample Input
192.168.100.16
Sample Output
YES
#include<stdio.h> #include<string.h> int main() { char s[105]; int i, j, l, flag; while( gets(s) ) { // printf( "%c..", s[0] ); flag = 0;//判断是不是点或数字 int temp = 0, flag1 = 0;//flag1是统计‘.’的个数 l = strlen(s); if( l > 15||s[0]<'0'||s[0]>'9' ) { printf( "NO\n" ); continue; } for( i = 0; i < l; i ++ ) { if( s[i] >= '0'&&s[i]<='9' ) { temp = temp*10+s[i]-'0'; } else if( s[i] == '.'&&s[i+1] >='0'&&s[i+1] <= '9' ) { if( temp > 255 ) { flag = 1; break; } else { temp = 0; flag1 ++; } } else { flag = 1; break; } } if( temp > 255 ) flag1 ++; //printf( "f1=%d..f=%d...", flag1, flag );第一次忘删了<img alt="尴尬" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/awkward.gif" /> if( flag ) { printf( "NO\n" ); } else if( flag1 != 3 ) printf( "NO\n" ); else printf( "YES\n" ); } }
相关文章推荐
- hdoj 2206 IP的计算
- HDOJ2206 IP的计算
- HDOJ--2206IP的计算
- HDOJ 2206:IP的计算 这道题的边界条件可以挑战你的想象力
- HDOJ 2206 IP的计算(正则表达式的应用)
- 杭电ACM HDOJ 2206 IP的计算
- hdoj 2206 IP的计算
- HDOJ 2206 IP的计算(正则表达式的应用)
- 【HDOJ】2206 IP的计算
- hdoj 2206 IP的计算 ~(>_<)~不是一般的水题!!!
- hdoj 2206 IP的计算 【基础】
- hdoj-2206 IP的计算
- hdoj 2206 IP的计算
- HDU 2206 IP的计算 WA
- hdu 2206 IP的计算
- hdu 2206 IP的计算 模拟
- HDU 2206 - IP的计算
- hdu 2206 ip的计算
- HDU 2206 IP的计算 字符串
- hdu2206IP的计算