c语言中用recursive做出输入一个数输出时是倒过来的数 例如12345输出是54321

c语言中用recursive做出输入一个数输出时是倒过来的数 例如12345输出是54321
最新回答
↗雾里↖看花☆

2023-02-16 16:27:43

在C语言中,递归是一种强大的编程技巧,可以用来解决许多问题,比如倒序输出一个数。下面是一个简单的例子,通过递归函数`reverse_digits`实现输入一个数并输出其倒序结果。

首先,我们定义了一个全局变量`n`,用于存储用户输入的数。接下来是主函数`main`,它读取用户输入,并调用`reverse_digits`函数处理输入的数。主函数的代码如下:

#include
int main() {
long int n;
void reverse_digits(unsigned int n);
while(scanf("%ld",&n) == 1) {
reverse_digits(n);
printf("\n");
}
return 0;
}

在这个主函数中,我们使用`scanf`函数读取用户输入的数,并通过`reverse_digits`函数处理该数。每次处理完成后,输出一个换行符,以便于区分不同的输入结果。

接下来是`reverse_digits`函数的实现。这个函数接收一个无符号整数`n`作为参数,并通过递归方式输出该数的倒序结果。函数的代码如下:

void reverse_digits(unsigned int n) {
if(n) {
printf("%d",n % 10);
reverse_digits(n / 10);
}
else {
return;
}
}

在这个函数中,我们首先检查`n`是否为零。如果`n`不为零,我们先输出`n`的个位数(即`n % 10`),然后递归调用`reverse_digits`函数,传入`n / 10`作为参数。当`n`为零时,我们返回,结束递归。

通过这种方式,我们可以有效地倒序输出一个数。例如,输入12345,程序将输出54321。

递归是一种强大的编程技术,它在解决某些问题时能够简化代码。在这个例子中,我们使用递归实现了倒序输出的功能,展示了递归在实际编程中的应用。