int?res[5]?=?{};//外部變量?,?把每壹位作為數組元素進行存儲
int?*p?=?res;
int?main(){
int?num?=?12345;
void?ser(int);//分別輸出每壹位數字
ser(num);
printf("\n");
p?=?res?+?4;//指針置於數組末尾
for(int?i=0;?i<sizeof(res)/sizeof(res[0]);?i++){//逆序輸出
printf("%d?",?*p--);
}
return?0;
}
void?ser(int?number){
if(number?>?9){
ser(number/10);?//遞歸
}
printf("%d?",?number?%?10);?//順序輸出
*p?=?(int)number?%?10;
p++;
}
/*
程序的輸出順序為?10?->?8?->?6?->?4?->?2 遞歸步驟解釋 1:?第壹次執行ser函數,numbser?=?12345判斷數字大於9,將int(1234)再次執行函數?ps:?(int)/(int)?結果為int 2:?待執行ser函數後,輸出結果個位數?12345?%?10?=?5 3:?第二次執行ser函數....類比步驟1 4:?待遞歸執行ser函數,類比步驟2,輸出十位個數?1234?%?10?=?4 5:?類比步驟1 6:?類比步驟2,輸出百位個數?123?%?10?=?3 7:?類比步驟1 8:?類比步驟2,輸出千位?12?%?10?=?2 9:?類比步驟1 10:?number值為1,不再遞歸,直接輸出萬位?1?%?10?=?1 */如有幫助,請點贊支持原創QVQ