| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1295 人关注过本帖
标题:十进制转十六进制(代码哪错啦)
只看楼主 加入收藏
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
结帖率:82.35%
收藏
已结贴  问题点数:100 回复次数:10 
十进制转十六进制(代码哪错啦)
#include"stdio.h"
   void  transformToHex(int dnum,char *hex);

main()
{
int i,t;
char a[100];
  scanf("%d",&t);
transformToHex(t,a);
for(i=strlen(a)-1;t>0;i--)
printf("%c",a[i]);

}
void  transformToHex(int dnum,char *hex)
{

  int t,i=0;
while(dnum)
{
t=dnum%16;
if(t>=0&&t<=9)
{
*(hex+i)=t+'0';
i++;
}
else
{
*(hex+i)=t-10+'a';
i++;
}
dnum/=16;

}
*(hex+strlen(hex)-1)='\0';



}
搜索更多相关主题的帖子: 十六进制 十进制 代码 
2010-04-22 20:46
chichu
Rank: 2
来 自:安徽阜阳
等 级:论坛游民
帖 子:71
专家分:89
注 册:2010-4-14
收藏
得分:0 
main 函数写成 void main()
加头文件#include<string.h>

有了目标才有动力!!!
2010-04-22 21:16
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 
以后问这种问题的时候把错误现象也一起发一下

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2010-04-22 21:28
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:0 
能编译,不过出现都是乱码。
2010-04-22 21:39
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:0 
100分都不行吗
2010-04-22 22:02
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
我看看

Discuz!  
好好学习  天天向上
2010-04-22 22:05
Spygg
Rank: 5Rank: 5
等 级:职业侠客
帖 子:135
专家分:394
注 册:2007-5-20
收藏
得分:100 
#include<stdio.h>
#include<string.h>
void  transformToHex(int dnum,char *hex);
main()
{
    int i,t;
    char a[100];
    scanf("%d",&t);
    transformToHex(t,a);
    for(i=strlen(a)-1;i>=0;i--)
        printf("%c",a[i]);
}
void  transformToHex(int dnum,char *hex)
{
    int t,i=0,k;
    while(dnum)
    {
        t=dnum%16;
        if(t>=0&&t<=9)
        {
            *(hex+i)=t+'0';
            i++;
        }
        else
        {
            *(hex+i)=t-10+'a';
            i++;
        }
        dnum/=16;
    }
    for(k=i;k<strlen(hex)-1;k++)
        *(hex+k)='\0';
}
2010-04-22 22:17
Spygg
Rank: 5Rank: 5
等 级:职业侠客
帖 子:135
专家分:394
注 册:2007-5-20
收藏
得分:0 
你对比下就知道问题出在那里了,主要是那个从最后一个i后字符串都应该是0,而且你main中的for循环也有问题
2010-04-22 22:18
gyx8899
Rank: 2
等 级:论坛游民
帖 子:56
专家分:91
注 册:2010-2-2
收藏
得分:0 
我帮你改了一下。改动处关于数组位数的计数。以后编程要严谨一些。
#include"stdio.h"//十进制转换十六进制
int  transformToHex(int dnum,char *hex)
{
    int t,i=0;
    while(dnum)
    {
        t=dnum%16;
        if(t>=0&&t<=9)
            hex[i++]=t+'0';
        else
            hex[i++]=t-10+'a';
        dnum/=16;
    }
    return i;
}
void main()
{
    int i,t,count=0;
    char a[100];
    scanf("%d",&t);
    count=transformToHex(t,a);
    for(i=count-1;i>=0;i--)
        printf("%c",a[i]);
    printf("\n");
}
希望对你有所帮组。
2010-04-22 22:29
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:0 
不要把我的要求改啦,void  transformToHex(int dnum,char *hex);不过还是谢谢你啦,非常感谢Spygg!
2010-04-23 11:53
快速回复:十进制转十六进制(代码哪错啦)
数据加载中...
 
   



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

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