这段代码是一个 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,程序会按照以下步骤进行:

  1. print(12345):调用 print 函数,参数为 12345。
  2. print(1234):由于 12345 大于 9,递归调用 print(1234)
  3. print(123):继续递归,调用 print(123)
  4. print(12):递归调用 print(12)
  5. print(1):递归调用 print(1)
  6. printf('1 '):由于 1 小于等于 9,输出 1 的个位数字。
  7. printf('2 '):返回上一层递归,输出 12 的个位数字。
  8. printf('3 '):继续返回,输出 123 的个位数字。
  9. printf('4 '):继续返回,输出 1234 的个位数字。
  10. printf('5 '):最后返回 main 函数,输出 12345 的个位数字。

最终输出结果为:5 4 3 2 1

总结:

这段代码展示了使用递归函数来实现逆序输出整数的简单方法。递归函数的调用过程可以理解为一层一层地剥开整数的数字,最终实现逆序输出。

C 语言递归函数实现逆序输出整数

原文地址: http://www.cveoy.top/t/topic/diRh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录