
C语言:编程实现将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符形式输出。
编程实现将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符形式输出。例如:输入十进制数79,将输出十六进制数4f。改下列代码,谢谢咯。#includ...
编程实现将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符形式输出。例如:输入十进制数79,将输出十六进制数4f。改下列代码,谢谢咯。
#include<stdio.h>
#include<string.h>
char trans(int x)
{ if(x<10)
return '0'+x;
else
return 'a'+x;
}
int DtoH(int n,char *str)
{ int i=0;
while(n!=0)
{ str[i]=trans(n%16);
n%=16;
i++;}
return i-1;
}
void main(void)
{ int i,k,n;
char *str;
scanf("%d",&n);
k=DtoH(n,str);
for(i=0;i<=k;i++)
printf("%d",str[k-i]);
} 展开
#include<stdio.h>
#include<string.h>
char trans(int x)
{ if(x<10)
return '0'+x;
else
return 'a'+x;
}
int DtoH(int n,char *str)
{ int i=0;
while(n!=0)
{ str[i]=trans(n%16);
n%=16;
i++;}
return i-1;
}
void main(void)
{ int i,k,n;
char *str;
scanf("%d",&n);
k=DtoH(n,str);
for(i=0;i<=k;i++)
printf("%d",str[k-i]);
} 展开
3个回答
展开全部
问题不少,首先,10进制不能直接转化为16进制,应该先转为2进制然后再转16进制,其次,char *str 用法错误,只分配了一个字符指针,你却当字符数组使用了,把这两处改了去。
追问
10进制能直接转16,谢谢!!
追答
那见识浅薄了,一直以为不能直接转换的。
展开全部
#include<stdio.h>
void DtoH(int x)
{
char digitstr[]="0123456789ABCDEF";
int conv[32],subs,i=0;
do{
conv[i]=x%16;
x /= 16;
i++;
}while(x!=0);
for(--i;i>=0;--i)
{
subs=conv[i];
printf("%c",digitstr[subs]);
}
}
void main()
{
int n;
while(scanf("%d",&n))
{
DtoH(n);
printf("\n");
}
}
void DtoH(int x)
{
char digitstr[]="0123456789ABCDEF";
int conv[32],subs,i=0;
do{
conv[i]=x%16;
x /= 16;
i++;
}while(x!=0);
for(--i;i>=0;--i)
{
subs=conv[i];
printf("%c",digitstr[subs]);
}
}
void main()
{
int n;
while(scanf("%d",&n))
{
DtoH(n);
printf("\n");
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言是不是,是不是一种编辑网络程序语言,这样的代码,你可以向北大青鸟的老师和学员问问,
广州北大青鸟是一个很专业的IT培训机构,我也有这样的想法去北大青鸟学校,我现在在广州,我想去北大青鸟广州俊星越秀校区!
广州北大青鸟是一个很专业的IT培训机构,我也有这样的想法去北大青鸟学校,我现在在广州,我想去北大青鸟广州俊星越秀校区!
追问
你个打广告的,走远点!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询