数据结构课后,老师布置的第二次作业中进行进制数转换时,出现乱码的原因与解决
注意事项:对栈的各种操作名都是固定的,尽量别误用。
语句体要加花括号。
乱码原因可能是电脑问题
换电脑编译,问题解决。
#include<stdio.h>//数制转换 出现乱码
#define MAX 100
typedef struct{
int data[MAX];
int top;
}seqstack;
//初始化
void initstack(seqstack l){
l.top =-1;//赋值 可更改
}
//栈空
int emptystack(seqstack l){
if(l.top==-1)//恒等于
return 1;
else
return 0;
}
//栈满
int fullstack(seqstack l){
if(l.top ==MAX-1)//恒等于
return 1;
else
return 0;
}
//入栈
void push(seqstack &l,int x){//对栈的操作函数是固定的被乱改动
if(fullstack(l))
printf("full");
else{//两语句,不加括号出错
l.top ++;
l.data [l.top ]=x;
}
}
//出栈
void popstack(seqstack &l){
if(emptystack(l)){
printf("empty");
}
else{
printf("%d ",l.data [l.top --]);
}
}
//八进制
void D_O(seqstack &l,int x){
while(x){
push(l,x%8);
x=x/8;
}
while(!emptystack(l)){
popstack(l);
}
}
main()
{
seqstack l;
initstack(l);
D_O(l ,57);
return 0;
}