首页上一页 1 下一页尾页 1 条记录 1/1页
《C语言经典编程282例》第51页 实例040 IP地址形式输出
发表在C语言图书答疑
2014-04-09
是否精华
是
否
版块置顶:
是
否
#include<stdio.h>
int bin_dec(int x,int n)
{
if(n==0)
return 1;
return x *bin_dec(x,n-1);
}
void main()
{
int i;
int ip[4]={0};
char a[33];
printf("输入二进制数:\n");
scanf("%s",a);
for(i=0;i<8;i++)
{
if(a[i]=='1')
ip[0]+=bin_dec(2,7-i);
}
for(i=8;i<16;i++)
{
if(a[i]=='1')
ip[1]+=bin_dec(2,15-i);
}
for(i=16;i<24;i++)
{
if(a[i]=='1')
ip[2]+=bin_dec(2,23-i);
}
for(i=24;i<32;i++)
{
if(a[i]=='1')
ip[3]+=bin_dec(2,31-i);
if(a[i]=='\0')
break;
}
printf("IP:\n");
printf("%d.%d.%d.%d\n",ip[0],ip[1],ip[2].ip[3]);
}
这段代码是《C语言经典编程282例》书中的第51页,实例040 IP地址的形式输出为什么运行不了呢?
int bin_dec(int x,int n)
{
if(n==0)
return 1;
return x *bin_dec(x,n-1);
}
void main()
{
int i;
int ip[4]={0};
char a[33];
printf("输入二进制数:\n");
scanf("%s",a);
for(i=0;i<8;i++)
{
if(a[i]=='1')
ip[0]+=bin_dec(2,7-i);
}
for(i=8;i<16;i++)
{
if(a[i]=='1')
ip[1]+=bin_dec(2,15-i);
}
for(i=16;i<24;i++)
{
if(a[i]=='1')
ip[2]+=bin_dec(2,23-i);
}
for(i=24;i<32;i++)
{
if(a[i]=='1')
ip[3]+=bin_dec(2,31-i);
if(a[i]=='\0')
break;
}
printf("IP:\n");
printf("%d.%d.%d.%d\n",ip[0],ip[1],ip[2].ip[3]);
}
这段代码是《C语言经典编程282例》书中的第51页,实例040 IP地址的形式输出为什么运行不了呢?