关于C语言用递归拆分整数(c语言递归的正确步骤)

关于C语言用递归拆分整数(c语言递归的正确步骤)

首页维修大全综合更新时间:2025-06-17 05:51:40

关于C语言用递归拆分整数

将一个整数的各个位分离出来的最简单方法就是模10,取个位数,直到该变为0。

参考代码:

#include <stdio.h>void main(){ int n=0; scanf("%d", &n ); do { printf("%d ", n%10 ); //每次输出个位 n/=10 ; //缩小10倍,去除原来的个位。 }while(n);}

但这整拆分的特点是从后向前输出每一位数。

如果仅是为了输出,还想正向输出每一位数,则可用递归函数来解决。(也可以实现逆向输出)

参考代码:

#include <stdio.h>void split_int( int n ){ if ( n>0 ) { //printf("%d ", n%10 );//逆向输出,放开这里,关闭下面的printf().即:先输出当前个位,再去高位的数 split_int( n/10 );//先去输出高位的数 printf("%d ", n%10 ); //再输出当前的个位数 }}void main(){ int n; scanf("%d", &n); split_int(n);}

如果想把分离开的数据存储到数组中,则最简单的方法是将整数用sprintf()存储到字符数组中,然后,遍历数组,逐位取出。

参考代码:

#include <stdio.h>void main(){ int n,i; char str[20]; scanf("%d", &n); sprintf(str,"%d", n); for( i=0;str[i];i++ ) //正向输出 printf("%c ", str[i] ); for( i--;i>=0;i-- ) //逆向输出 printf("%c ", str[i] );}

大家还看了
也许喜欢
更多栏目

© 2021 3dmxku.com,All Rights Reserved.