| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 457 人关注过本帖
标题:这段代码谁能帮忙解释
只看楼主 加入收藏
天楚
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:楚地
等 级:小飞侠
帖 子:550
专家分:2113
注 册:2013-3-14
结帖率:93.33%
收藏
已结贴  问题点数:20 回复次数:6 
这段代码谁能帮忙解释
char *norm(char *a)
{
    int len=strlen(a);
    if(strchr(a,'.')!=NULL)
    {
        while(a[--len]=='0');
            if(a[len]=='.')
                len--;
            a[len+1]='\0';
    }
    return a;
}
这是一个求A==B的一段代码,谁能帮忙在后面注释一下吗?
搜索更多相关主题的帖子: return 
2013-07-15 14:14
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:20 
看不懂
2013-07-15 14:17
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
好吧,明明是去掉一个用字符串记录的小数后多余的0.哪来什么A==B?
程序代码:
char *norm(char *a)
{
    int len=strlen(a);//得到字符串长度
    if(strchr(a,'.')!=NULL)//判断是不是小数的格式
    {
        while(a[--len]=='0');//找到从右往左数第一个非0字符的位置
            if(a[len]=='.')//如果它其实是整数。。。。。。
                len--;
            a[len+1]='\0';//在此结束字符串
    }
    return a;
}

比如"123.000"处理后成了"123"
"123.0010"处理后成了"123.001"

[ 本帖最后由 心灯甚亮 于 2013-7-15 14:24 编辑 ]
2013-07-15 14:21
天楚
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:楚地
等 级:小飞侠
帖 子:550
专家分:2113
注 册:2013-3-14
收藏
得分:0 
回复 3楼 心灯甚亮
这个我只截了一段,就是这段看不明白,哪个题确实是证明A==B。
谢谢了!

没有哪条路好走,选择了,就坚持下去~~~~
2013-07-15 14:30
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
哦,明白了。是证明字符串存储的两个数相等。先去掉多余的0,再strcmp()对不
2013-07-15 14:31
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
while(a[--len]=='0');
    if(a[len]=='.')
这代码是哪个SB排版的呀?既然while()后面有分号,那就应该这么排版
while(a[--len]=='0');
if(a[len]=='.')
如果 if(a[len]=='.') 是 while() 的循环体,那就不应该加分号
while(a[--len]=='0')
    if(a[len]=='.')

如果你的代码没有错误,那这个函数的功能是移除字符串尾部的.XXX000中的尾部0,或.000中的尾部的点和0
比如 "abc000" 变为 "abc000"
比如 "abc.efg" 变为 "abc.efg"
比如 "abc.e00" 变为 "abc.e"
比如 "abc.00" 变为 "abc"
比如 "abc..00" 变为 "abc."
算法为:
第一步:if( 字符串中没有点 ) 原样返回
第二步:去除尾部的所有0
第三步:去除尾部的点(如果有的话)
2013-07-15 14:37
天楚
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:楚地
等 级:小飞侠
帖 子:550
专家分:2113
注 册:2013-3-14
收藏
得分:0 
回复 5楼 心灯甚亮
这个题是为了证明俩个数相等(包括整型,浮点型),这段代码是其中的处理方法

没有哪条路好走,选择了,就坚持下去~~~~
2013-07-23 13:40
快速回复:这段代码谁能帮忙解释
数据加载中...
 
   



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

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