用c语言编写把十进制正整数转换为S进制数输出的递归函数
时间: 2024-11-29 10:35:17 浏览: 2
C.rar_instead5ss_尾递归_整数转为二进制数
在C语言中,你可以使用递归算法来实现十进制正整数到任意基数(如S)的转换。下面是一个简单的递归函数示例,它将输入的十进制数分解为各位数字并打印出来:
```c
#include <stdio.h>
#include <string.h>
// 定义递归函数,参数n表示十进制数,base表示基数
void decimalToBase(int n, int base) {
// 基础情况:当n小于base时,返回字符对应的ASCII码减去'0'
if (n < base) {
printf("%d", n);
return;
}
// 递归调用,处理剩余位
char digit = n % base;
printf("%c", digit + '0'); // 加上'0'是为了得到0-9的对应字符
// 继续处理下一位
decimalToBase(n / base, base);
}
int main() {
int num, radix;
// 输入十进制数和基数
scanf("%d %d", &num, &radix);
// 调用递归函数进行转换
printf("转换结果(以%s进制): ", radix == 10 ? "十" : radix == 8 ? "八" : "其他"); // 根据基数显示适当的名称
decimalToBase(num, radix);
printf("\n");
return 0;
}
```
这个函数会按照从低位到高位的顺序逐步将十进制数转换为指定基数的数字。当你运行此程序时,它会提示用户输入一个十进制数和基数,然后输出该数的相应进制表示。
阅读全文