將一個從鍵盤輸入的整數存放到一個數組中,經過程序的運行按照數組中的逆序輸出該整數,利用遞歸的方法解決問題。程序員
設計函數實現數據的逆序存放,設定形參數組接收實參數組的地址,來存儲數據的每一位。算法
函數體採用遞歸的方式解決問題,所以考慮遞歸進行的條件。編程
例如,把數據 n 存放到數組 s 中,若 n 是一位數,則存放 n 到數組中;若 n 不是一位數,則存放 n/10 到數組中。數組
問題解決的難點在於找到數據的存放地址,經過不斷地取餘和整除 10 來獲得數據的每一位。函數
爲了實現數據的逆序存放,每一次整除 10 的時候,同時把存放數據的數組地址後移,這樣獲得的第一位數存放在數組的最後一位……經過依次前移,即遞歸的迴歸,實現整個數據的存放。經過函數 convert() 實現字符串中的數字的逆序轉換。學習
#include <stdio.h> int convert(char s[],int n) { int i; if((i=n/10)!=0) convert(s+1,i); *s=n%10+'0'; return 0; } int main() { int num; char str[10]=" "; printf("input integer data:"); scanf("%d",&num); convert(str,num); printf("output string:\n"); puts(str); return 0; }
當輸入整數爲 123456789 時,其程序運行結果以下所示:spa
input integer data:123456789設計
output string:指針
987654321調試
當輸入整數爲 654321789 時,逆序轉換輸出結果以下所示:
input integer data:654321789
output string:
987123456
數組名錶明數組中第一個元素的地址,數組的地址就是數組的指針,每一個元素的地址就是每一個元素的指針。
數組元素在內存中是連續存放的,相對於普通變量,用指針指向數據元素操做更簡便。
一維數組的數組名錶明瞭數組的首地址,即數組的指針,但數組名是常量指針,其值是不可改變的,能夠定義一個指針變量指向數組名。當定義了指針後,對於數組元素的引用既能夠使用下標,又能夠使用指針。
無論你是轉行也好,初學也罷,進階也可,若是你想學編程,進階程序員~
【值得關注】個人 編程學習交流俱樂部!【點擊進入】
全棧程序員正在等你加入~