题目:编写程序,输入一个长整型数,将其转换为十六进制,以字符串形式输出。(提示:可以定义char s[]="0123456789ABCDEF"以帮助输出十六进制字符)。
#include<stdio.h>
int main()
{
long int n, m = 0, i = 0;
char s[] = "0123456789ABCDEF";
scanf_s("%d", &n);
if (n < 16)
{
printf("%c",s[n]);
}
else
{
m = (n - n % 16) / 16;
i = n % 16;
printf("%d%c", m, s[i]);
}
return 0;
}
我想再建立一个字符数组,把m,s[i]存进去,然后输出这个新字符数组,但是失败了
怎么解决呢
仅供参考!
#include<stdio.h>
char *fun( long n)
{
static char buf[20];
sprintf(buf,"%LX\n",n);
return buf;
}
int main(int argc, char *argv[])
{
long n;
scanf("%ld",&n);
printf("%s",fun(n));
return 0;
}