题目描述
小狼是公司新来的网络工程师,负责维护公司的网络系统。
小狼在熟悉系统时发现公司的存储在数据库中的IP地址不是他熟悉的 xxx.xxx.xxx.xxx 的形式,而是用一个整数表示!
OMG,这可把小狼愁坏了,不过经过他辛苦的探寻,终于在系统日志中找到了每一个整数对应的真实IP地址,比如下面几个IP地址:
整数 真实IP地址
360072789 21.118.70.85
1145324612 68.68.68.68
真实IP地址找到了,但是小狼不能每次都去系统日志里查找吧!这太费劲了!
于是他想写一个程序将整数自动转换成他熟悉的IP地址形式,机智的你能帮助小狼猜到转换的方法并写出这个程序吗?
由于系统日志中可能存在不合法数据,所以你要考虑这个程序的健壮性。如果无法转换,输出-1。
输入
第1行,n,表示下面有n个整数
第2行至n+1行,每行一个整数
输出
输出n行。每行一个ip地址
样例输入
3
360072789
1145324612
12345678901
样例输出
21.118.70.85
68.68.68.68
-1
参考代码
#include <stdio.h>
int main()
{
int n;
long long int x,d=0xffffffff;
scanf("%d",&n);
while(n--)
{
scanf("%lld",&x);
if(x>d||x<0)
{
printf("-1n");
continue;
}
printf("%lld.%lld.%lld.%lldn",x/16777216,x%16777216/65536,x%65536/256,x%256);
}
return 0;
}
解析
暂无