色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

關于C語言用遞歸拆分整數

錢斌斌2年前26瀏覽0評論

關于C語言用遞歸拆分整數?

將一個整數的各個位分離出來的最簡單方法就是模10,取個位數,直到該變為0。

參考代碼:

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

但這整拆分的特點是從后向前輸出每一位數。

如果僅是為了輸出,還想正向輸出每一位數,則可用遞歸函數來解決。(也可以實現逆向輸出)

參考代碼:

#include <stdio.h>void split_int( int n ){ if ( n>0 ) { //printf("%d\n", n%10 );//逆向輸出,放開這里,關閉下面的printf().即:先輸出當前個位,再去高位的數 split_int( n/10 );//先去輸出高位的數 printf("%d\n", 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\n", str[i] ); for( i--;i>=0;i-- ) //逆向輸出 printf("%c\n", str[i] );}