这个程序要用到堆栈吗?
//将十进制数转化成八进制数
int * InitStack() //初始化栈
{
int * top,* base;
base=(int *)malloc(sizeof(int) * 50);
if(!base) {printf("Error!");exit();}
top=base;
return top;
}
int * push(int * top,int n) //元素入栈
{
* top=n;
top++;
return top;
}
int pop(int * top) //取出栈顶元素
{
int e;
top--;
e=*top;
return e;
}
void conversion()
{
int * top, * base;
int e,N;
int i;
top=InitStack();
base=top;
printf("Input the number:\n");
scanf("%d",&N);
while(N!=0)
{
top=push(top,N%8);
N=N/8;
}
printf("After change,the number is:\n");
while(top!=base)
{
e=pop(top);
top--;
printf("%d",e);
}
printf("\n");
}
main()
{
conversion();
}
小弟刚学数据结构,就用栈的思想编了这个小程序,仅供大家参考,欢迎大家帮忙优化和完善