1646: 栈-十进制转八进制(顺序存储)
金币值:2
定数:10
时间限制:1.000 s
内存限制:128 M
正确:30
提交:51
正确率:58.82% 命题人:
题目描述
输入任意一个非负十进制整数(注意可能是整数 0 ),要求输出与其等值的八进制数(要求用顺序栈实现,并且有栈初始化操作,入栈操作,出栈操作,判断栈是否为空的操作)。
输入格式
第一行输入一个十进制非负整数N
输出格式
第二行输出与N等值的八进制数
输入样例 复制
20
输出样例 复制
24
提示
#include <stdio.h>
#define MAXSIZE 100
typedef int elemType;
typedef struct {
elemType *base;
elemType *top;
int stacksize;
} sqStack;
void init(sqStack &s);
void push(sqStack &s, int e);
void pop(sqStack &s, int &e);
void convert(sqStack &s, int n);
void output(sqStack s);
int main(void) {
int n;
sqStack s;
init(s);
scanf("%d",&n);
convert(s,n);
output(s);
return 0;
}
void init(sqStack &s) {
s.base=new elemType[MAXSIZE];
s.top=s.base;
s.stacksize=MAXSIZE;
}
void push(sqStack &s, int e) {
//平台已提供
}
void pop(sqStack &s, elemType &e) { //出栈
//平台已提供
}
void output(sqStack s) {
elemType x;
while(s.top!=s.base) {
pop(s,x);
printf("%d",x);
}
printf("\n");
}
/*仅提交以下代码*/
void convert(sqStack &s, elemType n) { //十进制数转八进制数
}