编写一个函数,采用递归方法将任一正整数转换为二进制形式。在主函数中完成数据的输入输出。C语言
时间: 2024-03-25 22:39:59 浏览: 100
C语言实现递归算法
好的,以下是一个递归函数将任意正整数转换为二进制形式的实现:
```c
#include <stdio.h>
void decimal_to_binary(int n) {
if (n == 0) {
return;
} else {
decimal_to_binary(n / 2);
printf("%d", n % 2);
}
}
int main() {
int decimal;
printf("请输入一个正整数: ");
scanf("%d", &decimal);
printf("%d 的二进制形式为: ", decimal);
decimal_to_binary(decimal);
printf("\n");
return 0;
}
```
在这个函数中,我们首先检查输入的数是否为0。如果是,我们直接返回。否则,我们使用递归将该数的整除结果传递给下一个函数调用,同时将该数的模数打印到控制台上。这个过程会一直重复,直到我们将数字减少到0为止。最终结果将是输入数字的二进制表示。
在主函数中,我们首先提示用户输入一个正整数,然后使用 `scanf` 函数将其读入。接下来,我们调用上述递归函数将该数字转换为二进制形式,并将结果打印到控制台上。
当我们运行程序时,它会提示用户输入一个正整数,并将该数字的二进制形式打印到控制台上。
阅读全文