C和指针之函数之归以字符形式按顺序打印数字的每位数字(递归和非递归)

举报
chenyu 发表于 2021/07/27 00:11:54 2021/07/27
【摘要】 1、问题 以字符形式按顺序打印数字的每位数字(递归和非递)   2、代码实现 #include <stdio.h>#include <math.h>//以字符形式按顺序打印数字的每位数字,比如4267,打印4267//递归实现 void printf_char(unsigned int value){ unsigne...

1、问题

以字符形式按顺序打印数字的每位数字(递归和非递)

 


2、代码实现


   
  1. #include <stdio.h>
  2. #include <math.h>
  3. //以字符形式按顺序打印数字的每位数字,比如4267,打印4267
  4. //递归实现
  5. void printf_char(unsigned int value)
  6. {
  7. unsigned int tmp;
  8. tmp = value / 10;
  9. if (tmp != 0)
  10. printf_char(tmp);
  11. putchar(value % 10 + '0');
  12. }
  13. //非递归实现
  14. void printf_char1(unsigned int value)
  15. {
  16. int len = 0;
  17. int value1 = value;
  18. //计算长度
  19. while (value1 > 0)
  20. {
  21. ++len;
  22. value1 /= 10;
  23. }
  24. double a = pow(10, 2);
  25. printf("len is %d\n", len);
  26. //4267 4267 / 1000, 4267 / 100 % 10, 4367 / 10 % 10,
  27. for (int i = 1; i <= len; ++i)
  28. {
  29. double dou = pow(10, len - i);
  30. i == 1 ? putchar(value / (int)dou + '0') : putchar(value / (int)dou % 10 + '0');
  31. }
  32. }
  33. i

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/78463134

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。