1646: 栈-十进制转八进制(顺序存储)
金币值:2
定数:10
时间限制:1.000 s
内存限制:128 M
正确:10
提交:18
正确率:55.56% 命题人:
题目描述
输入任意一个非负十进制整数(注意可能是整数 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) { //十进制数转八进制数 }