1. 程式人生 > >順序和逆序輸出

順序和逆序輸出

#include<stdio.h>


1、逆序輸出數字n的每一位

數字n對10求餘算出個位數字,  輸出個位數字,然後n/10,儲存高位數字,依次從低位到高位逆序輸出n

int PrintReverse1(int n)//逆序函式
{
    do
    {
        printf("%d ",n%10);//儲存個位數字
        n /= 10;//丟個位數字,儲存高位數字
    }while(n != 0);

    printf("\n");
    return 0;
}



2、順序輸出數字n的每一位

首先算出n的位數(定義一個迭代因子,n除一次10,迭代因子加一),然後用n的位數算出和n位數相同的最小數字(n=123,那麼n位數相同的最小數字就是100),算數n的最高位數字並輸出,依次從高位到低位逆序輸出n

int Figure(int n)//計算數字位數函式
{
    int count = 0;//定義一個迭代因子

    do
    {
        count++;//n除一次10,count+1
        n /=10;//丟掉個位數字
    }while(n != 0);

    return count;
}

int PrintOrder(int n)//順序輸出函式
{
    int a = Figure(n);//將n的位數賦值給a
    int b = 1;

    for(int i=0;i<a-1;i++)
    {
        b *= 10;//為了得到和n一樣位數的最小數字
    }

    do
       {
         printf("%d ", n/b);//得到n的最高為數字
         n %= b;//儲存求餘後的n
         b /= 10;//儲存除10後的b
       }while(b!=0);

     printf("\n");
    return 0;
}

主函式
int main()
{
    PrintOrder(123456789);
    PrintReverse1(123456789);
    printf("%d\n",Figure(12345));//測試計算數字位數函式
    return 0;
}