编写一个递归函数实现将正整数n逆序输出
时间: 2025-01-05 14:39:51 浏览: 52
在C语言中,你可以使用递归来实现一个将正整数n逆序输出的函数。这里是一个简单的例子,我们先将n除以10得到余数,然后递归地对商再次调用这个函数,直到商变成0,最后将所有的余数组成的字符串反转即可。
#include <stdio.h>
#include <string.h> // 用于字符串操作
// 递归函数,接收整数n和剩余的每一位数字
void reverseDigit(int n, char* reversed) {
if (n == 0) { // 如果n为0,结束递归
reversed[strlen(reversed)] = '\0'; // 添加字符串终止符
printf("%s\n", reversed); // 打印逆序的数字
} else {
char currentDigit = n % 10; // 获取当前位的数字
reversed = reverse(reversed); // 通过指针反转已有的部分
*reversed++ = currentDigit; // 将新数字添加到末尾
reverseDigit(n / 10, reversed); // 对商继续递归
}
}
// 逆转字符串指针指向的部分
char* reverse(char* str) {
char temp;
while (*str != '\0') {
temp = *str;
*str = *(str+1);
*(str+1) = temp;
str++;
}
return str;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
char reversed[100]; // 预留足够大的空间
reverseDigit(num, reversed); // 传入初始为空的字符串
return 0;
}
当你运行此程序并输入一个整数时,它会逆序显示给定的数字。
相关推荐


















