程式功能:對於輸入的任意乙個非負十進位制整數,列印輸出與其等值的八進位制數。
標頭檔案: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
//標頭檔案裡面最好只放宣告類的檔案
#ifndef algorithm_h
#define algorithm_h
#include "c3-1.h"
typedef int elementtype;
//結點
typedef struct node
node, *pnode;
//棧typedef struct stackrecord
stack, *pstack;
//函式宣告
int initstack(pstack s);
int stackempty(pstack s);
int destroystack(pstack s);
int clearstack(pstack s);
void push(pstack s, int value);
int pop(pstack s, int *e);
#endif
子程式
#include "algorithm.h"
#include "c3-1.h"
//初始化乙個鍊錶棧
int initstack(pstack s)
else }
//銷毀乙個棧
int destroystack(pstack s)
int clearstack(pstack s)
//入棧
void push(pstack s, int value)
//判斷棧是否為空
int stackempty(pstack s)
//出棧
int pop(pstack s, int *e)
else
}
測試主函式:
/*
對於輸入的任意乙個非負十進位制整數,
列印輸出與其等值的八進位制數
*/#include "algorithm.h"
#include "c3-1.h"
int main(void)
while(!stackempty(&s))
printf("\n");
return 0;
}
執行結果
數制轉換 棧的應用
問題描述 將乙個非負的十進位制整數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...
棧的應用1 數制轉換
一般分為 二 八 十 十六這幾種常見的 沒錯就是我現在能見到的 x進製就是0 x 1構成每一位,就如二進位制是0 1,八進位制是0到7 數制轉換一直是計算機的乙個基本問題,目前已經有了很多的解決方法。如果是其他進製轉換十進位制 因為十進位制多數人還是比較熟悉的,畢竟買菜時價錢不是二進位制的 先找到每...