hdu2206
来源:互联网 发布:小榕哥sql注入工具 编辑:程序博客网 时间:2024/05/29 17:27
题目来源:http://acm.hdu.edu.cn/diy/contest_showproblem.php?pid=1001&cid=31288&problem=Problem%20%20F
解法或类型:循环结构
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
192.168.100.16
Sample Output
YES
题意描述
提供一个ip地址判断是否合法。
解题思路
先用循环把IP地址的四段数字提取出来分别存进四个空字符串,然后依次判断这四个字符串中的数字是否在0~255之间,是否是三个字符组成。
时空分析:
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
chara[10000],b[100],c[100],d[100],e[100];
intv,i,m,n,t,j,k,y,h,l,s1,s2,s3,s4,l1,l2,l3,l4,z1,z2,z3,z4;
while(gets(a)!=NULL)
{
h=0;
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='.')
h++;
}
t=0;
for(i=0;a[i]!='.';i++)
{
b[t]=a[i];
t++;
}
s1=0;
z1=0;
for(i=0;i<t;i++)
{
s1=s1*10+b[i]-48;
}
if(b[0]=='0'&&t>1)
z1=1;
m=0;
for(j=i+1;a[j]!='.';j++)
{
c[m]=a[j];
m++;
}
s2=0;
z2=0;
for(i=0;i<m;i++)
{
s2=s2*10+c[i]-48;
}
if(c[0]=='0'&&m>1)
z2=1;
n=0;
for(k=j+1;a[k]!='.';k++)
{
d[n]=a[k];
n++;
}
s3=0;
z3=0;
for(i=0;i<n;i++)
{
s3=s3*10+d[i]-48;
}
if(d[0]=='0'&&n>1)
z3=1;
y=0;
for(l=k+1;a[l]!='\0';l++)
{
e[y]=a[l];
y++;
}
s4=0;
z4=0;
for(i=0;i<y;i++)
{
s4=s4*10+e[i]-48;
}
if(e[0]=='0'&&y>1)
z4=1;
if(h!=3||z1==1||z2==1||z3==1||z4==1||t==0||m==0||n==0||y==0||t>3||m>3||n>3||y>3||s1<0||s1>255||s2<0||s2>255||s3<0||s3>255||s4<0||s4>255)
printf("NO\n");
else
printf("YES\n");
}
return0;
}
这个改了很多次能想到的例子都试了就是对不了。
错误分析: 1、忘记处理一些特殊形式的IP地址;如00.00.00.00;…;01.0.0.0;010.0.0.0;001.0.0.0。
- hdu2206
- IP的计算 hdu2206
- HDU2206:IP的计算
- HDU2206-IP的匹配
- HDU2206 IP的计算
- HDU2206 IP的计算 【经典题】
- hdu2206 IP的计算(正则表达式)
- 【W】HDU2206——字符串处理(IP计算)
- 开启jmx监控后关闭tomcat提示Port already in use的问题
- Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Python
- 欢迎使用CSDN-markdown编辑器
- 【深入Java虚拟机】之七:Javac编译与JIT编译
- 【交互设计】弹窗、新页面、当前页跳转
- hdu2206
- C++常见问题总结
- Dialog对话框样式的四种实现方式
- Ribbon 和 Eureka 的集成
- 关于bintray上传的方法
- 5-25 念数字 (15分)
- 处理xml返回报文
- cut
- hdu2203