| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1178 人关注过本帖
标题:用栈来写把十进制数转化为二进制数
只看楼主 加入收藏
humeng
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2016-10-10
结帖率:40%
收藏
已结贴  问题点数:10 回复次数:1 
用栈来写把十进制数转化为二进制数
#include<iostream>
#include<stdlib.h>
#define S_size 100
using namespace std;
typedef struct aa
{
    int top;
    int a[S_size];
}LinkStack;
void Initstack(LinkStack *S)
{//初始化栈
    S->top=-1;
}
void Clearstack(LinkStack *S)
{//清空栈
    S->top=-1;
}
void Pushstack(LinkStack *S,int *elem)
{//进栈
    if(S->top==S_size-1)
    {
        cout<<"上溢出!"<<endl;
        exit(1);
    }
    else
    {
        S->top++;
        S->a[S->top]=*elem;
    }
}
void Popstack(LinkStack *S,int *w)
{//出栈
    if(S->top==-1)
    {
        cout<<"下溢出!"<<endl;
        exit(1);
    }
    else
    {
        *w=S->a[S->top];
        S->top--;
    }
}
int Gettop(LinkStack *S)
{//取栈顶元素
    if(S->top==-1)
    {
        cout<<"下溢出!"<<endl;
        exit(1);
    }
    else
        return S->a[S->top];
}
int Emptystack(LinkStack *S)
{//判断栈是否为空
    if(S->top==-1)
        return 1;
    else
        return 0;
}
void transformstack(long m)
{//转化为二进制数
    LinkStack *P;
    Initstack(P);
    int *b,*c;
    while(m!=0)
    {
        *b=m%2;
        Pushstack(P,b);
        m=m/2;
    }
    while(!Emptystack(P))
    {
        Popstack(P,c);
        cout<<(*c);
    }
    cout<<"\n"<<endl;
}
int main()
{
    long n;
    cin>>n;
    transformstack(n);
    return 0;
}
//不知道为什么没有输出,求大神帮忙
搜索更多相关主题的帖子: include 二进制 十进制 
2016-10-19 15:06
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
    LinkStack *P;
    Initstack(P);
    int *b,*c;
    while(m!=0)
    {
        *b=m%2;
这是什么东西呀,根本看不懂

程序代码:
#include <iostream>
#include <stack>
using namespace std;

void foo( unsigned m )
{
    stack<unsigned> s;
    for( ; m!=0; m/=2 )
        s.push( m%2 );

    if( s.empty() )
        cout << 0;
    else
        for( ; !s.empty(); s.pop() )
            cout << s.top();
    cout << endl;
}
int main( void )
{
    unsigned n;
    cin >> n;
    foo( n );

    return 0;
}

2016-10-19 15:17
快速回复:用栈来写把十进制数转化为二进制数
数据加载中...
 
   



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

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