用棧實現進位轉換

來源:互聯網
上載者:User

標籤:io   ar   sp   on   代碼   c   amp   ef   r   

“除基取餘 + 順序棧”  實現十進位數轉換成其他進位數,代碼如下:

#include <stdio.h>
#define MAX_L 100

//定義棧
typedef struct
{
    int data[MAX_L];        
    int top;            
}Stack;

//進位轉換
//origin是待轉數,right是要轉的目的數的權
void Convert(int origin, int right)  
{
    Stack s;        //初始化棧
    static char *lookup = "0123456789ABCDEF";    //用於輸出
    s.top = -1;

    while(origin)
    {
        s.data[++(s.top)] = origin % right;
        origin /= right;
    }

    while(s.top != -1)
    {
        putchar(lookup[s.data[s.top--]]);
    }
    printf("\n");
}

int main()
{
    int num, r;
 

    while(1)
    {
        puts("請輸入要轉換的數和要轉換的進位權(eg:12345,2):");
        scanf("%d,%d", &num, &r);
        Convert(num, r);
    }
    
    scanf("%d",&r);
    return 0;
}

用棧實現進位轉換

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.