1. 程式人生 > 其它 >6-8 遞迴實現順序輸出整數 (15分)

6-8 遞迴實現順序輸出整數 (15分)

技術標籤:演算法

本題要求實現一個函式,對一個整數進行按位順序輸出。

函式介面定義:

void printdigits( int n );

函式printdigits應將n的每一位數字從高位到低位順序打印出來,每位數字佔一行。

裁判測試程式樣例:

#include <stdio.h>

void printdigits( int n );

int main()
{
    int n;

    scanf("%d", &n);
    printdigits(n);

    return 0;
}

/* 你的程式碼將被嵌在這裡 */

輸入樣例:

12345

輸出樣例:

1
2
3
4
5

程式碼:

void printdigits( int n )
{
    if(n<10)
    {
        printf("%d\n",n);
    }
    if(n>=10)
    {
        printdigits(n/10);
        printf("%d\n",n%10);
    }
}

這個題對於初學遞迴函式的同學可能算是比較難的了,說實話也不難,就是很繞

我們來一步一步分析此題
輸入12345的時候,由於它大於10,所以先執行大於10的這個if語句中的第一句:是將12345除10之後的1234再次輸入這個同種函式,然後1234又大於10,還是執行大於10的這個if語句中的第一句:再將1234除10之後的123放入這個同種函式,最後成1的時候,是小於10的,輸出1並換行,然後執行n= =12時的(n==12,即是將12除10之後剩的1輸出,然後執行接著的printf語句輸出12%10後的2,依次返回,完工)