急急急!!!输入一个十进制整数,将其转换为二进制整数,然后输出,利用顺序栈实现。输入什么输出都为0
typedefstructstack_type{intstack[100];inttop;}stacktype;#include<stdio.h>#include<std...
typedef struct stack_type
{
int stack[100];
int top;
}stacktype;
#include<stdio.h>
#include<stdlib.h>
int main()
{stacktype *s;
s=(stacktype *)malloc(sizeof(stacktype));
s->top=-1;
printf("please enter a decimal integer:\n");
int x,y;
scanf("%d",&x);
int puts(stacktype *s,int x);
int pops(stacktype *s);
for(int i=0;x!=0;i++)
{y=x%2;
puts(s,y);
x=x/2;
}
for(i=0;i<8;i++)
pops(s);
printf("%d",s->stack[0]);
return 0;
}
int puts(stacktype *s,int x)
{
if(s->top>=99)
return(0);
else
{
s->top++;
s->stack[s->top]=x;
return(1);
}
}
int pops(stacktype *s)
{
if(s->top<0)
return(NULL);
else
{
s->top--;
return(s->stack[s->top+1]);
}
}
咳咳,没有人呢 展开
{
int stack[100];
int top;
}stacktype;
#include<stdio.h>
#include<stdlib.h>
int main()
{stacktype *s;
s=(stacktype *)malloc(sizeof(stacktype));
s->top=-1;
printf("please enter a decimal integer:\n");
int x,y;
scanf("%d",&x);
int puts(stacktype *s,int x);
int pops(stacktype *s);
for(int i=0;x!=0;i++)
{y=x%2;
puts(s,y);
x=x/2;
}
for(i=0;i<8;i++)
pops(s);
printf("%d",s->stack[0]);
return 0;
}
int puts(stacktype *s,int x)
{
if(s->top>=99)
return(0);
else
{
s->top++;
s->stack[s->top]=x;
return(1);
}
}
int pops(stacktype *s)
{
if(s->top<0)
return(NULL);
else
{
s->top--;
return(s->stack[s->top+1]);
}
}
咳咳,没有人呢 展开
2013-05-12
展开全部
输出函数把return换成printf试试,输出循环条件不要设成8,这样你只能输出8位,换个大一点的数,你编写的输出函数中不时有判断输出吗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询