棧的應用(一)數制轉換

2021-08-29 22:38:36 字數 1216 閱讀 8465

將十進位制數n轉換成其他d進製數

n=(n div d) * d+n mod d (其中:div為整除運算,mod為求餘運算)

(1348)10=(2504)8,其運算過程如下:

//程式名稱:數制轉換

//編譯環境:vc++ 6.0

//修改日期:2018-10-25

#define stack_init_size 100

#define stackincrement 10

#define overflow -1

#define ok 1

#define error 0

#define true 1

#define false 0

#include#includetypedef int status;

typedef int selemtype;

//定義順序棧

typedef structsqstack;

//初始化

status initstack(sqstack &s)

//入棧操作

status push(sqstack &s,selemtype e)

*s.top++ = e;

return ok;

}//獲取棧頂元素

status gettop(sqstack s,selemtype &e)

//出棧操作

status pop(sqstack &s,selemtype &e)

//求棧長

status stacklength(sqstack s)

//清空棧

status clearstack(sqstack &s)

//探空

status stackempty(sqstack s)

//輸出棧中元素

void print(sqstack s)

}//銷毀棧

status destroystack(sqstack &s)

//數制轉換

void main()

while(!stackempty(s))

}

棧的應用(數制轉換)

程式功能 對於輸入的任意乙個非負十進位制整數,列印輸出與其等值的八進位制數。標頭檔案 c3 1.h ifndef c 3 1 h define c 3 1 h include include include define true 1 define false 0 endif algorithm.h...

數制轉換 棧的應用

問題描述 將乙個非負的十進位制整數n轉換為另乙個等價的基為b的b進製數的問題。解答 按除2取餘法,得到的餘數依次是1 0 1 1,則十進位制數轉化為二進位制數為1101。分析 由於最先得到的餘數是轉化結果的最低位,最後得到的餘數是轉化結果的最高位,因此很容易用棧來解決。如下 include incl...

棧的應用 數制轉換

數制轉換 十進位制數n和其它d進製數的轉換是計算機實現計算的基本問題,其解決方法很多,其中一種簡單方法基於以下原理.n n div d d n mod d 其中 div為整除運算,mod 為求餘運算.例如 10進製數1348轉換為8進製為 2504.其運算過程如下 n n div d n mod d...