/*
題目:數制轉換(通過棧這個資料結構來求解)
內容:輸入m進製的數x,輸出n進製的數。
作答者:小白楊
收穫:1、棧這種資料結構,只允許在棧頂進行出棧入棧操作。
2、先構造出棧的基本結構,然後初始化乙個棧
再勾勒出入棧和出棧的函式
再輸入m進製的數x,轉換為int型入棧
再出棧的同時將m進製的數轉換為十進位制,然後將此十進位制的數轉換為n進製併入棧儲存,然後出棧並轉換為字元輸出
3、棧,其實就是乙個動態的陣列
*/#include #include #include #define stacksize 100
#define stackincr 10
#define ok 1
#define error -1
typedef int elemint;
//構造棧的基本結構
typedef structnumber;
//棧的初始化
int initstack(number &s)
//入棧
int push(number &s, elemint e)
*(s.top) = e;
s.top++;
return ok;
}//出棧
void pop(number &s, elemint &e)
else
printf("棧為空\n");
}//字元資料轉換為數值資料
void char_to_num(char e, elemint &n)
//數值資料轉換為字元資料
void num_to_char(elemint n, char &e)
//原始進製資料入棧
void numpush(number &s)
; printf("請輸入原始資料進製:\n");
scanf_s("%d", &m);
printf("請輸入要轉換成的進製:\n");
scanf_s("%d", &n);
printf("請輸入原始資料:\n");
scanf_s("%s",a,50);
for (i = 0; a[i] != '\0'; i++) //將原始資料一一從字元轉換數值入棧
push(s, m);
push(s, n);
}//利用棧這個資料結構的存進存出為軸,進行數制轉換
void charpop(number &s)
//將資料從十進位制轉換為n進製併入棧儲存
while (z != 0)
//將資料出棧並轉換為字元資料輸出
while (s.base != s.top)
printf("\n");
}void main()
用棧轉換數制
有了前面的基礎,這個就變得比較簡單了,這裡就不做細說 include using namespace std define stack init size 100 define stackincrement 10 typedef int elemtype typedef struct sqstack...
順序棧實現數制轉換
include include define stacksize 100 假定預分配的棧空間最多為100個元素 typedef int datatype 應將順序棧的datatype定義改為整型 typedef struct seqstack void main void initstack seq...
棧的應用(數制轉換)
程式功能 對於輸入的任意乙個非負十進位制整數,列印輸出與其等值的八進位制數。標頭檔案 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...