1. 程式人生 > >【C/C++程式碼練習12】正序分解非負整數

【C/C++程式碼練習12】正序分解非負整數

題目

    輸入一個非負整數,正序輸出它的每一位數字。例如輸入12345,則輸出1 2 3 4 5。例如輸入7000,則輸出7 0 0 0。

解法如下

#include <stdio.h>

int main(void)
{
    int x; 
    scanf("%d", &x); 
    int t = x; 
    
    /*    計算x的mask,如x=123,mask=100    */
    int mask = 1; 
    while ( x > 9)
    {
        x = x / 10;
        mask = mask * 10; 
    }
    
    /*    正序分離整數    */
    int digit; 
    while ( mask > 0)
    {
        digit = t / mask; 
        printf("%d", digit); 
        if ( mask > 9) // 控制空格符的輸出
        {
            printf(" "); 
        }
        t = t % mask; 
        mask = mask / 10;
    }
    
    printf("\n"); 
    
    return 0; 
}