本題易錯的地方為對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...