#include <stdio.h>
#include <stdlib.h>
#define STACK_MAX_SIZE 100
typedef int ElemType;
typedef struct {
ElemType data[STACK_MAX_SIZE];
int stacktop;
}Sqstack;
//栈的初始化
Sqstack InitStack(Sqstack &l){
l.stacktop=-1;
return l;
}
//判断栈空(如果为空栈返回0,否则返回1)
int EmptyStack(Sqstack &l){
if(l.stacktop==-1){
return 0;
}
else
return 1;
}
//进栈
void Pushstack(Sqstack &l,int temp){
if(l.stacktop==STACK_MAX_SIZE-1) {
printf("此栈空间已满!\n");
}
l.stacktop++;
l.data[l.stacktop]=temp;
}
//出栈
int Popstack(Sqstack &l){
int temp;
if(l.stacktop==-1){
printf("此栈为空!\n");
}
temp=l.data[l.stacktop];
l.stacktop--;
return temp;
}
//进制转换
void conversion(){
Sqstack l;
int n,e,m;
InitStack(l);
printf("请输入任意一个非负十进制整数:\n");
scanf("%d",&n);
printf("请输入要转换的进制数(二进制或八进制):\n");
scanf("%d",&m);
while(n){
Pushstack(l,n%m);
n=n/m;
}
printf("转换为%d进制的结果为:\n",m);
while(EmptyStack(l)){
e=Popstack(l);
printf("%d",e);
}
}
int main() {
while(1){
conversion();
printf("\n");
}
return 0;
}
#include <stdlib.h>
#define STACK_MAX_SIZE 100
typedef int ElemType;
typedef struct {
ElemType data[STACK_MAX_SIZE];
int stacktop;
}Sqstack;
//栈的初始化
Sqstack InitStack(Sqstack &l){
l.stacktop=-1;
return l;
}
//判断栈空(如果为空栈返回0,否则返回1)
int EmptyStack(Sqstack &l){
if(l.stacktop==-1){
return 0;
}
else
return 1;
}
//进栈
void Pushstack(Sqstack &l,int temp){
if(l.stacktop==STACK_MAX_SIZE-1) {
printf("此栈空间已满!\n");
}
l.stacktop++;
l.data[l.stacktop]=temp;
}
//出栈
int Popstack(Sqstack &l){
int temp;
if(l.stacktop==-1){
printf("此栈为空!\n");
}
temp=l.data[l.stacktop];
l.stacktop--;
return temp;
}
//进制转换
void conversion(){
Sqstack l;
int n,e,m;
InitStack(l);
printf("请输入任意一个非负十进制整数:\n");
scanf("%d",&n);
printf("请输入要转换的进制数(二进制或八进制):\n");
scanf("%d",&m);
while(n){
Pushstack(l,n%m);
n=n/m;
}
printf("转换为%d进制的结果为:\n",m);
while(EmptyStack(l)){
e=Popstack(l);
printf("%d",e);
}
}
int main() {
while(1){
conversion();
printf("\n");
}
return 0;
}