| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1282 人关注过本帖
标题:求助 雷格码问题 问什么WA 啊。
只看楼主 加入收藏
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:5 
(1)k=1;位置调整到变量定义的后面
(2)
    for(i=0;i<m;i++)
    {
       if(i==m) e[i]=d[i];/*i的值不可能等于m,这个判断是多余的*/
        else if(d[i]==d[i+1]) e[i]=0;
        else e[i]=1;
        sum+=e[i]*k;
        k*=10;
    }
(3)使用整数存储格雷码对应的十进制形式有问题,因为当a转换的二进制位数比较大时,sum计算出的结果就是错误的,可能超出整数的表示范围,直接输出数组吧
    printf("%d\n",sum);
2013-05-06 06:29
weipeng1217
Rank: 5Rank: 5
等 级:职业侠客
帖 子:175
专家分:386
注 册:2012-1-12
收藏
得分:0 
回复 11楼 helloUJS
对了,应该是他输出的问题,用字符串输出试试。

C坛友交流群 群号:161091913 ,欢迎经常在线的朋友加入,一起学习,一起进步。。
2013-05-06 13:09
nero33
Rank: 1
来 自:四川绵阳
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-5-5
收藏
得分:0 
回复 10楼 weipeng1217
就是我学校的OJ。。
2013-05-07 10:24
nero33
Rank: 1
来 自:四川绵阳
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-5-5
收藏
得分:0 
回复 11楼 helloUJS
嗯。。
就是可能int sum 不够我改成了
程序代码:
#include <stdio.h>
int main()
{
    int a,i,k,m;
    k=1;
    m=0;
    int d[100]={0};
    int e[100]={0};
    scanf("%d",&a);
    for(i=0;;i++)
    {
        d[i]=a%2;
        a/=2;
        m++;
        if(0==a) break;
    }
    for(i=0;i<m;i++)
    {
        if(i==m-1) e[i]=d[i];
        else if(d[i]==d[i+1]) e[i]=0;
        else e[i]=1;
    }
    for(i=m-1;i>=0;i--)
    {
    printf("%d",e[i]);
    }
    printf("\n");
    return 0;
}

就对了。谢谢啦
2013-05-07 10:37
nero33
Rank: 1
来 自:四川绵阳
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-5-5
收藏
得分:0 
回复 12楼 weipeng1217
也谢谢你啦。我准备加你哪个群。赋值一般都要加在定义之后吗?
2013-05-07 10:38
快速回复:求助 雷格码问题 问什么WA 啊。
数据加载中...
 
   



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

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