將一個從鍵盤輸入的整數存放到一個陣列中,通程序式的運行按照陣列中的逆序輸出該整數,利用遞回的方法解決問題,
演算法思想
設計函式實作資料的逆序存放,設定形引陣列接收實引陣列的地址,來存盤資料的每一位,
函式體采用遞回的方式解決問題,因此考慮遞回進行的條件,
例如,把資料 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 時,其程式運行結果如下所示:
input integer data:123456789
output string:
987654321
當輸入整數為 654321789 時,逆序轉換輸出結果如下所示:
input integer data:654321789
output string:
987123456
總結
陣列名代表陣列中第一個元素的地址,陣列的地址就是陣列的指標,每個元素的地址就是每個元素的指標,
陣列元素在記憶體中是連續存放的,相對于普通變數,用指標指向資料元素操作更簡便,
一維陣列的陣列名代表了陣列的首地址,即陣列的指標,但陣列名是常量指標,其值是不可改變的,可以定義一個指標變數指向陣列名,當定義了指標后,對于陣列元素的參考既可以使用下標,又可以使用指標,

不管你是轉行也好,初學也罷,進階也可,如果你想學編程,進階程式員~
【值得關注】我的 編程學習交流俱樂部!【點擊進入】
全堆疊程式員正在等你加入~

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/270572.html
標籤:C
