标题:求助: 利用栈,将十进制数转换成八进制的数
只看楼主
鱼鱼啦啦
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-26
 问题点数:0 回复次数:7 
求助: 利用栈,将十进制数转换成八进制的数
那位高手可以帮忙解决这个问题啊?
  十分感谢!!


利用栈,将十进制数转换成八进制的数
例:十进制转换成八进制:(66)10=(102)8
66/8=8 余 2
8/8=1 余 0
1/8=0 余 1
结果为余数的逆序:102
搜索更多相关主题的帖子: 八进制 十进制数 逆序 余数 
2008-06-26 14:51
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
得分:0 
任意进制转换.

/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http:// **
*****************************************************************/
#include<iostream>
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<<k;   
    }   
   
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;
}   


[[it] 本帖最后由 zjl138 于 2008-6-26 15:39 编辑 [/it]]

i like linux...
2008-06-26 15:35
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
得分:0 
再给个递归的吧,以前写的.

#include<iostream>   
using namespace std;   
void conversion(int a)   
{   
   if (!a) return;   
   conversion(a/8);   
   cout<<a%8;   
}   
int main(void)   
{   
     int a;   
     cout<<"输入你要转换的数"<<endl;   
     cin>>a;   
     conversion(a);   
     cout<<endl;   
     system("pause");   
     return   0;   
 }

i like linux...
2008-06-26 15:45
鱼鱼啦啦
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-26
得分:0 
你这好像是高级java啊,我们没学过这种类型的那~~有点看不懂的那~~
唔~~
2008-06-27 21:14
orzorz
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2008-6-25
得分:0 
[bo][un]鱼鱼啦啦[/un] 在 2008-6-27 21:14 的发言:[/bo]

你这好像是高级java啊,我们没学过这种类型的那~~有点看不懂的那~~
唔~~

orz....
java~? ho ho~

不打不相识,不吵也不相识,偶然间竟遇到一直找寻的大牛.
2008-06-27 21:39
编程小呆
Rank: 2
来 自:西电
等 级:论坛游民
帖 子:31
专家分:23
注 册:2010-3-20
得分:0 
一会我来回个
2010-04-01 13:08
许苏娟
Rank: 1
等 级:新手上路
威 望:1
帖 子:40
专家分:9
注 册:2010-4-3
得分:0 
conversion(int a){
stack s;
initial(&s);
if(!a) return;
push(s,a%8);
conversion(a/8);
k=pop(s);
cout<<k;
2010-04-10 13:14
sally02468
Rank: 2
来 自:山东
等 级:论坛游民
帖 子:17
专家分:14
注 册:2015-10-17
得分:0 
回复 2楼 zjl138
这是C++吗?

生活可以廉价,但是梦想不可以
2015-11-25 21:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-221380-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.334893 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved