帮忙看下进制转换问题 利用栈
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MAX 100
typedef struct
{
int data[MAX];
int top;
}seqstack, *pseqstack;
pseqstack s;
//s = (pseqstack)malloc(sizeof(seqstack));
pseqstack init_seqstack()
{
pseqstack s;
s = (pseqstack)malloc(sizeof(seqstack));
if(s)
s ->top = -1;
return s;
}
int empty_seqstack(pseqstack s)
{
if(s ->top == -1)
return 1;
else
return 0;
}
int input_seqstack(pseqstack s,int x)
{
if(s ->top ==MAX - 1)
return 0;//栈满不能入栈
else
{
s ->top ++;
s ->data[s ->top] = x;
return 1;
}
}
int out_seqstack(pseqstack s)
{
int x;
if (empty_seqstack(s)) //栈空不能出栈
return 0;
else
{
x = s ->data[s ->top];
s ->top--;
printf("%d",x);
return 1;
}
}
int gettop_seqstack(pseqstack s)
{
int x;
if(empty_seqstack(s))
return 0;
else
{
x = s->data[s ->top];
return (1);
}
}
int change(int x)
{
int n;
pseqstack s;
s = (pseqstack)malloc(sizeof(seqstack));
while(x != 0)
{
n = x % 2;
input_seqstack(s,n);
x = x / 2;
}
out_seqstack(s);
return 1;
}
int main()
{
int n;
pseqstack s;
s = (pseqstack)malloc(sizeof(seqstack));
printf("输入要转化的十进制整数:\n");
scanf("%d",&n);
//printf("选择你要转换成的进制数:\n");
change(n);
return 0;
}
通过编译,但是好像进栈有问题,在Win-TC中可以运行,但是没有实现转换,比如输入10输出的是0101而不是1010,应该是进栈没有成功。在vc中运行出现 是怎么回事?新手求解答
[ 本帖最后由 木头lbj 于 2011-3-30 12:33 编辑 ]




