棧 任意進製轉換

2021-07-16 05:32:03 字數 1038 閱讀 3579

本題易錯的地方為對n的值的判斷,分為三種情況:第一種為n大於零,這時可直接進行進製轉換運算;第二種為n等於零,此時無論n轉換成幾進製,輸出都為0;

第三種為n小於零,此時可以先把n的值大於零,賦給另一變數,到下面再判斷n是否大於零,若大於零則輸出「-」。還有一難點為當轉換為十一到十六進製制是的字母,這一點在程式中表現得很明顯了。讀者自行判斷。

下面是**:

#include #include #define stack_init_size 1000000

#define stackincrement 1000000

typedef int selement;

typedef struct

sqstack;

int initstack(sqstack *s)//一如既往的初始化

int push(sqstack *s,int e)//進棧函式

*s->top++=e;//此處注意++的位置

return 1;

}int pop(sqstack *s)//出棧函式

int emptystack(sqstack *s)//判斷棧是否為空

int change(sqstack *s,int n,int r)//轉換函式

else if(n>0)m=n;

else if(n==0)//不要忘記n為0時的情況

while(m)//分解

while(!emptystack(s))

j=pop(s);//直接用此函式不可以,

//所以先傳遞給乙個整型變數

if(j>=10)

else printf("%d",j);

}else

else printf("%d",j);}}

return 1;

}int main()

return 0;

}

此**在codeblocks環境中

棧的進製轉換任意進製

實驗日期 2020 4.16實驗名稱 棧的進製轉換 實驗目的 1.掌握棧表的儲存形式及其描述。2.掌握棧的建立,壓入,彈出,查詢,刪除。實驗內容 1.採用malloc函式動態分配空間 2.建立一定大小的連續空間。實驗 解決 對其重新命名使用 在彈棧時對判斷邏輯關係有混淆 解決 if s base e...

進製轉換(任意進製轉換)

a進製轉b進製 思想 a進製轉十進位制 十進位制轉b進製 a進製轉十進位制 include include includeusing namespace std const int p 16 p代表 a進製 int main cout 十進位制轉b進製 include includeusing na...

任意進製轉換

本文參考 google 資料結構 c語言 一 簡介 進行任意進製的轉換 二 重點 通過對輸入的數進行分解,然後根據相應的數進行轉碼 三 include include using namespace std n為進製,w為待轉換的值 void conver int n,int w while i 0...