| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1394 人关注过本帖, 1 人收藏
标题:C语言菜鸟,一道简单题实在没辙了,求高手帮忙找出错误。。
取消只看楼主 加入收藏
gao16forever
Rank: 2
等 级:论坛游民
帖 子:32
专家分:29
注 册:2011-11-29
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:3 
C语言菜鸟,一道简单题实在没辙了,求高手帮忙找出错误。。
题目:
Description
假定你从任何设备读二进制数据流,它代表IP地址,你的任务是转化一个32位的二进制数,变成一个由点分隔开的十进制数。这个32为的IP地址被分为4组,每组代表一个十进制数(0-255) 对应的关系如下:

Input
第一行输入包含一个数字n(1<=n<=100),表示要输入几个二进制数,下面就是需要转化的数

Output
输出必须包含对应的n个IP地址

Sample Input
2
00000000000000000000000000000000
11111111111111111111111111111111
Sample Output
0.0.0.0
255.255.255.255
我的程序:
#include<stdio.h>
#include<math.h>
void main()
{
    int n,i,j,k,a[4],d,t;
    char s[32];
    scanf("%d",&n);
    getchar();
    for (i=0;i<n;i++)
    {
    d=0;a[0]=0;a[1]=0;a[2]=0;a[3]=0;k=0;
    for (j=0;j<32;j++)
    scanf("%c",&s[j]);
    getchar();
    for (j=0;j<8;j++)
    {
    if (s[j+d*8]=='1') t=pow(2,j);
    else t=0;
    a[d]=t+a[d];
    if (j==7)  {j=-1;d++;}
    k++;
    if (k==32) break;
    }
    printf("%d.%d.%d.%d\n",a[0],a[1],a[2],a[3]);
    }
}
看了好几个小时了,就是不知道错在哪里。。。
搜索更多相关主题的帖子: include IP地址 二进制 C语言 十进制 
2011-11-29 13:37
gao16forever
Rank: 2
等 级:论坛游民
帖 子:32
专家分:29
注 册:2011-11-29
收藏
得分:0 
不会啊。不是在上面scanf("%d",&n);读取过了吗?
2011-11-29 13:58
gao16forever
Rank: 2
等 级:论坛游民
帖 子:32
专家分:29
注 册:2011-11-29
收藏
得分:0 
回复 4楼 丹姿儿
我用void 就是无返回值,直接打印输出了结果,用int返回值有什么用呢(我对返回值一直不是很理解,return 0 是指函数最终结果返回到0?),谢谢,还有就是前面pow之前加int ??我也不是很理解。。
2011-11-30 00:12
gao16forever
Rank: 2
等 级:论坛游民
帖 子:32
专家分:29
注 册:2011-11-29
收藏
得分:0 
回复 9楼 beyondyf
我最近也刚学到结构,结构就是让数据之间的联系更紧密,书上是这么说,但是我没怎么感觉出来结构与非结构的区别啊,能讲一下吗?。。谢谢了
2011-11-30 14:23
快速回复:C语言菜鸟,一道简单题实在没辙了,求高手帮忙找出错误。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026340 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved