为什么结果不会显示呢?#include<iostream.h>
#define MaxSize 20
typedef struct{
int data[MaxSize];
int top;
}SeqStack; //定义栈
/*********初始化栈************/
SeqStack *Init_SeqStack()
{
SeqStack *s;
s = new SeqStack;
if(!s)
return NULL;
else
{
s->top = -1;
return s;
}
}
/***********栈空判断************/
int Empty_SeqStack(SeqStack *s)
{
if (s->top = -1)
return 1;
else
return 0;
}
/*************入栈**************/
int Push_SeqStack(SeqStack *s, int x)
{
if(s->top == MaxSize - 1)
return 0;
else
{
s->top++;
s -> data[s->top] = x;
return 1;
}
}
/***************出栈*************/
int Pop_SeqStack(SeqStack *s, int *x)
{
if(Empty_SeqStack(s))
return 0;
else
{
*x = s->data[s->top];
s->top--;
return 1;
}
}
/*************十进制转八进制*********************/
void conversion(int N, int r)
{
SeqStack *s1;
int x;
s1 = Init_SeqStack();
while(N)
{
Push_SeqStack(s1,N%r); //将余数一直入栈
N = N/r;
}
while(!Empty_SeqStack(s1))
{
Pop_SeqStack(s1,&x);
cout << x;
}
}
void main()
{
int N = 3467, r = 8;
conversion(N, r);
}
|