C语言:输入一个十进制整数用递归函数转化为n进制数

第一次写博客,记录一下在作业中遇到的困难和心得,不足之处望各路大佬指正。在完成时参考过别人的代码最后再融合了下自己写的整理而成。(新手小白学习中……)
以下程序采用短除法实现递归调用。
首先,分析问题:递归函数的输入应该有要输入的整数以及要转化的n进制数,其次分析函数的内部结构,当函数调用到最后一层时,即短除法到最后一步时应该有一个if判断条件是否已除到小于n(n进制)否则继续递归。
下面是相关代码:
在这里插入图片描述
下面是测试结果:
在这里插入图片描述
在这里插入图片描述
感觉新手应该注意的点
1,用来记录下一次递归的的整数(即除过一次的)不需要再次定义新变量,参考以上代码,直接将m/n的值重新赋值给m即可,用m作为要递归的下一个整数变量(本人踩过的坑 ,可能大家不会哈,作为新手的我值得提一提)
2,也是本人踩过的一个坑,看下面
错误的示范
这个else语句,应该将printf排除在外,否则,最后输出时,会输出上上一次递归调用的x的值,依次下去中间会少输出一个n进制的值。
在程序设计最初时的思路和总结
最开始学完递归看过了书上的案例感觉懂了,但其实在真正开始写的时候才意识到😂自己还是太菜了,对递归的理解还不到位。最初时还想过这个短除法得逆序输出,是不是得要定义一个数组来存放每次运算完的余数。最后呢实践证明: true wisdom comes from practice. 动手实践使人进步。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只爱圣女果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值