cc6gec 2017-04-15 11:32 采纳率: 0%
浏览 1023
已结题

用栈实现进制转换 输出停不下来

#include
#include
#include
#define M 20
typedef struct mystack
{
int a[M];
int top;//top表示数组元素的位置
}ST;
int isfull(ST *t);
int isempty(ST *t);
int pop(ST *t,int *data);
int push(ST *t,int data);
void transfer(int number);
int main()
{
int x;
printf("请输入一个十进制数:\n");
scanf("%d",&x);
while(x!=0)
{
transfer(x);
}
return 0;
}
int isfull(ST *t)//判断栈是否满
{
if(t->top==M-1)
return 1;
else return 0;
}
int isempty(ST *t)//判空
{
if(t->top return 1;
else return 0;
}
int push(ST *t,int data)//入栈操作
{
if(!isfull(t))
{
(t->top)++;
t->a[t->top]=data;
return 1;

}
else return 0;

}
int pop(ST *t,int *data)//*data表示出栈元素
{
if(!isempty(t))
{
*data=t->a[t->top];
(t->top)--;//栈长度减一
return 1;

}
else return 0;

}
void transfer(int number)
{
ST t;
int r;
t.top=-1;
while(number)//number 为非零时,持续求余
{
r=number%8;
push(&t,r);//入栈
number=number/8;//整除运算

}
while(!isempty(&t))
{
    pop(&t,&r);//出栈
     printf("%d",r);
}

printf("\n");

}

  • 写回答

5条回答 默认 最新

  • threenewbee 2017-04-15 11:57
    关注
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!