| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
绝地游戏外挂辅助教学千里之行 始于足下
共有 4578 人关注过本帖
标题:数据结构作业,要求输入一个十进制的数,转换为二进制输出。本人新手,自己 ...
只看楼主 收藏
a853052879
Rank: 2
等 级:论坛游民
帖 子:39
专家分:10
注 册:2015-8-17
结帖率:60%
  已结贴   问题点数:6  回复次数:5   
数据结构作业,要求输入一个十进制的数,转换为二进制输出。本人新手,自己编的代码,为何不能输出结果?
本人新手,自己编的代码,但是为什么不能输出结果?求大牛指点!急急急!!感激不尽哈
#include<stdio.h>
#include<stdlib.h>
typedef int Elemtype;
#define M 100
typedef struct
{
    Elemtype data[M];
    int top;
}sqstack;
void Initsqstack(sqstack *&s)
{
    s=(sqstack *)malloc(sizeof(sqstack));
    s->top=-1;
}
bool stackEmpty(sqstack *s)
{
    return(s->top==-1);
}
bool push(sqstack *&s,Elemtype e)
{
    if(s->top==M-1)
        return false;
    s->top++;
    s->data[s->top]=e;
    return true;
}
bool pop(sqstack *&s,Elemtype &e)
{
    if(s->top==-1)
    return false;
    e=s->data[s->top];
    s->top--;
    return true;
}
int main()
{
    Elemtype e,n;
    sqstack *st;
    scanf("%d",&n);
    st=(sqstack *)malloc(sizeof(int));
    if(st==NULL)
        return 0;
    Initsqstack(st);
    while(e!=0)
    {
        push(st,e=n%2);
        n=n/2;
    }
    while(e!=0)
    {
        pop(st,e=n%2);
        n=n/2;
        printf("%d",e);
        }
    }
    free(st);
    return true;
}

搜索更多相关主题的帖子: include  return  二进制  十进制  false  
2015-11-02 12:19
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:366
帖 子:12471
专家分:49080
注 册:2012-10-18
  得分:6 
是为了练习链表吗  进制转换没有这么麻烦的

DO IT YOURSELF !
2015-11-02 13:03
a853052879
Rank: 2
等 级:论坛游民
帖 子:39
专家分:10
注 册:2015-8-17
  得分:0 
回复 2楼 wp231957
为了练习栈的基本操作

清风无泪
2015-11-02 19:27
a853052879
Rank: 2
等 级:论坛游民
帖 子:39
专家分:10
注 册:2015-8-17
  得分:0 
回复 2楼 wp231957
我已经懂了~~~

清风无泪
2015-11-03 21:55
s524250262
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2015-5-26
  得分:0 
我也是新手,你能在后面加备注让我学习下吗,我基础很差。
2015-11-06 12:36
一个人用菊花
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-10-27
  得分:0 
#include <iostream.h>
void binary(int number) //转换为二进制输出
{
   int remainder;//余数
   if(number <= 1)
   {
      cout << number;
      return;
   }
   remainder = number%2;//求余数
   binary(number >> 1);    //递归调用  右移一位
   cout << remainder;
}
void main(void) //主函数
{
   int number;
   cout << "请输入一个正整数: ";
   cin >> number;
   if (number < 0)
      cout << "输入错误!\n";
   else
   {
      cout << number << "转换为二进制为: ";
      binary(number);//转换为二进制输出
      cout << endl;
   }
}
2015-11-11 12:33







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

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