C 语言递归函数实现逆序输出整数
这段代码是一个 C 语言程序,它使用递归函数 print 来逆序输出一个整数的每一位数字。
#include <stdio.h>
void print(int n) {
if (n > 9) {
print(n / 10);
}
printf('%d ', n % 10);
}
int main() {
int num = 0;
scanf('%d', &num);
print(num);
return 0;
}
代码分析:
-
print(int n)函数:- 该函数是一个递归函数,用于逆序输出整数
n的每一位数字。 if (n > 9):如果n大于 9,则递归调用print(n / 10),将n的十位和更高位传递给自身,继续进行递归。printf('%d ', n % 10):当n小于或等于 9 时,输出n的个位数字。
- 该函数是一个递归函数,用于逆序输出整数
-
main函数:- 定义变量
num来存储输入的整数。 - 使用
scanf('%d', &num)读取用户输入的整数。 - 调用
print(num)函数,将num作为参数传递给print函数,开始逆序输出。
- 定义变量
工作原理:
递归函数 print 的工作原理是通过不断地将 n 除以 10,并输出 n 对 10 取模的结果来实现逆序输出。例如,如果输入的整数是 12345,程序会按照以下步骤进行:
print(12345):调用print函数,参数为 12345。print(1234):由于 12345 大于 9,递归调用print(1234)。print(123):继续递归,调用print(123)。print(12):递归调用print(12)。print(1):递归调用print(1)。printf('1 '):由于 1 小于等于 9,输出 1 的个位数字。printf('2 '):返回上一层递归,输出 12 的个位数字。printf('3 '):继续返回,输出 123 的个位数字。printf('4 '):继续返回,输出 1234 的个位数字。printf('5 '):最后返回main函数,输出 12345 的个位数字。
最终输出结果为:5 4 3 2 1
总结:
这段代码展示了使用递归函数来实现逆序输出整数的简单方法。递归函数的调用过程可以理解为一层一层地剥开整数的数字,最终实现逆序输出。
原文地址: http://www.cveoy.top/t/topic/diRh 著作权归作者所有。请勿转载和采集!