當前位置:編程學習大全網 - 編程軟體 - C語言編程,任意輸入壹個五位正整數,逆序輸出每壹位上的數 如輸入54321 輸出12345 要代碼

C語言編程,任意輸入壹個五位正整數,逆序輸出每壹位上的數 如輸入54321 輸出12345 要代碼

#include?<stdio.h>

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

  • 上一篇:C語言編程題:輸入壹個正整數 repeat (0<repeat<10),做 repeat 次下列運算:
  • 下一篇:機器語言屬於什麽語言
  • copyright 2024編程學習大全網