Only_For_Fun 2016-10-16 10:46 采纳率: 0%
浏览 12890
已结题

C语言长整数转化成16进制字符串,初学

本题要求实现一个将长整数转化成16进制字符串的简单函数。

函数接口定义:
void f( long int x, char *p );

其中x是待转化的十进制长整数,p指向某个字符数组的首元素。函数f的功能是把转换所得的16进制字符串写入p所指向的数组。16进制的A~F为大写字母。

裁判测试程序样例:
#include
#define MAXN 10

void f( long int x, char *p );

int main()
{
long int x;
char s[MAXN] = "";

scanf("%ld", &x);
f(x, s);
printf("%s\n", s);

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例1:
123456789

输出样例1:
75BCD15

输入样例2:
-125

输出样例2:
-7D

  • 写回答

4条回答 默认 最新

  • threenewbee 2016-10-16 11:38
    关注
     void f(long x,char * s)
    {
    if (x < 0) s[0] = '-';
     int i,j,c;
     for(i=(x<0?0:-1);x>0;i)
     {
      s[++i]=x%16;
      x/=16;
     }
     for(j=i;j>=0;j--)
       if(s[j]<10)s[j]+=48;
         else s[j]+=55;
     s[i+1]='\0';
     for(j=0;j<i;j++,i--)
     {c=s[j];s[j]=s[i];s[i]=c;}
    }
    
    评论

报告相同问题?

问题事件

  • 请提交代码 10月25日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog