c语言函数题,救救萌新吧!输出十六进制自然数(递归版) 

JOJOandDIO 2019-12-05 08:55:23
请编写递归函数,以十六进制形式输出自然数。 函数原型 void PrintHex(int num, int cap); 说明:参数 num 为待输出的自然数,cap 为大写标记。函数将自然数 num 以十六进制形式的输出,以字母 A ~ F 或 a ~ f 表示为 10 ~ 15 的数字。若 cap 为1(真),则以采用大写字母,否则采用小写字母。 裁判程序 #include <stdio.h> void PrintHex(int num, int cap); int main() { int n, c; scanf("%d%d", &n, &c); PrintHex(n, c); putchar('\n'); return 0; } /* 你提交的代码将被嵌在这里 */ 测试数据 输入样例 输出样例 0 0 0 37 0 25 936 1 3A8 2147483647 0 7fffffff 要求:不得使用循环语句,不得调用 printf 函数。
...全文
796 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46536920 2020-04-18
  • 打赏
  • 举报
回复
爱你吆,对了你多了个分号
寻开心 2019-12-05
  • 打赏
  • 举报
回复 2
哦,不让用printf
那就把那一句替换成putchar, 只不过要自己做一下转化了
void PrintHex(int num, int cap)
{
int c = num % 16;
int r = num / 16;
if( r != 0 ) PrintHex(r, cap);

if ( c < 10 )
putchar(c + '0' );
else
putchar(cap? c+'A'-10 : c+'a'-10 );
};
寻开心 2019-12-05
  • 打赏
  • 举报
回复
void PrintHex(int num, int cap)
{
int c = num % 16;
int r = num / 16;
if( r != 0 ) PrintHex(r, cap);
if ( cap )
printf("%x", c);
else
printf("%X", c);
};

70,008

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧