鱼鱼啦啦 发布留言 2008-6-26 14:51
求助: 利用栈,将十进制数转换成八进制的数
那位高手可以帮忙解决这个问题啊?
十分感谢!!
利用栈,将十进制数转换成八进制的数
例:十进制转换成八进制:(66)10=(102)8
66/8=8 余 2
8/8=1 余 0
1/8=0 余 1
结果为余数的逆序:102
zjl138 发布留言 2008-6-26 15:35
任意进制转换.
/***************************************************************** ** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org ** *****************************************************************/ #include using namespace std; #define stacksize 100 typedef int DataType; typedef struct { DataType data[stacksize]; int top; }Stack; void Initial(Stack *s) { s->top=-1; } int Isempty(Stack *s) { return s->top==-1; } int IsFull(Stack *s) { return s->top==stacksize-1; } void Push(Stack *s,DataType x) { if(IsFull(s)) { cout<<"栈上溢"; exit(1); } s->data[++s->top]=x; } DataType Pop(Stack *s) { if(Isempty(s)) { cout<<"栈为空"; exit(1); } return s->data[s->top--]; } //进制转换函数 void Conversion(int i,int j) { int k; Stack s; Initial(&s); while(i) { Push(&s,i%j); i=i/j; } while(!Isempty(&s)) { k=Pop(&s); cout< } cout<<endl; } DataType top(Stack *s) { if(Isempty(s)) { cout<<"栈为空"; exit(1); } return s->data[s->top]; } int main(void) { int m,n; cin>>m>>n; Conversion(m,n); system("pause"); return 0; } [/quote]
[ 本帖最后由 zjl138 于 2008-6-26 15:39 编辑 [/it]]zjl138 发布留言 2008-6-26 15:45 再给个递归的吧,以前写的.
#include using namespace std; void conversion(int a) { if (!a) return; conversion(a/8); cout<} int main(void) { int a; cout<<"输入你要转换的数"< cin>>a; conversion(a); cout< system("pause"); return 0; }
|
鱼鱼啦啦 发布留言 2008-6-27 21:14 你这好像是高级java啊,我们没学过这种类型的那~~有点看不懂的那~~ 唔~~[em08]orzorz 发布留言 2008-6-27 21:39 [quote][un]鱼鱼啦啦[/un] 在 2008-6-27 21:14 的发言:[/bo]
你这好像是高级java啊,我们没学过这种类型的那~~有点看不懂的那~~ 唔~~[em08] |
orz....
java~? ho ho~
页: [1]