SHAOXIAOJ正在加载中...

1646: 栈-十进制转八进制(顺序存储)

金币值:2 定数:10 时间限制:1.000 s 内存限制:128 M
正确:10 提交:18 正确率:55.56% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 数据结构-栈与队列

题目描述

输入任意一个非负十进制整数(注意可能是整数 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) { //十进制数转八进制数

}