c语言递归函数十进制转二进制
时间: 2024-09-25 20:01:13 浏览: 48
在C语言中,递归函数可以用来将十进制整数转换成二进制表示。递归的基本思想就是把大问题分解成小问题,直到遇到基本情况。对于十进制转二进制,基本情况通常是当十进制数为0时。下面是递归实现的一个简单例子:
```c
#include <stdio.h>
#include <limits.h> // 引入INT_MAX用于防止溢出
// 递归函数,将十进制数转二进制字符串
char* decimalToBinary(int n) {
static char binary[40]; // 静态数组用于存储二进制字符串
if (n == 0) { // 基本情况:n为0,结束递归
binary[0] = '\0'; // 结束字符串
return binary;
}
// 计算当前位的二进制值,并追加到结果字符串
binary[strlen(binary)] = n % 2 + '0';
// 递归调用,去掉最低位(最右边的1)
return decimalToBinary(n / 2);
}
int main() {
int num;
printf("请输入一个十进制整数: ");
scanf("%d", &num);
char* result = decimalToBinary(num);
printf("该数的二进制形式是: %s\n", result);
free(result); // 释放静态数组内存
return 0;
}
```
在这个程序中,用户输入一个十进制整数,`decimalToBinary`函数会不断地除以2并将余数作为二进制的最低位添加到结果字符串中,直到整数变为0为止。
阅读全文