以前用c語言寫的,把標頭檔案和相關語句改一下就是c++了。
#include
#definesize20
typedefstructstack
{intele[size];
inttop;
}stack;
voidempty(stack*s)//初始化棧為空
{
s->top=-1;
}
voidpush(stack*s,intn)//入棧
{if(s->top==size-1)
{printf("棧空間已滿,無法入棧!");
exit(0);
s->ele[++s->top]=n;
intpop(stack*s)//出棧
{if(s->top==-1)
{printf("空棧,無法出棧!");
returns->ele[s->top--];
intmain()//主函式
{intnum,j,data;
stack*s;
s=(stack*)malloc(sizeof(stack));
empty(s);
printf("請輸入一個正整數;");
scanf("%d",&num);
printf("請輸入要轉換的進位制數;\n2.二進位制\n8.八進位制\n16.十六進位制\n");
scanf("%d",&j);
while(num)
{data=num%j;
push(s,data);
num=num/j;
printf("%d進位制數為:",j);
while(s->top!=-1)
{data=pop(s);
printf("%d",data);
return0;
以前用c語言寫的,把標頭檔案和相關語句改一下就是c++了。
#include
#include
#definesize20
typedefstructstack
{intele[size];
inttop;
}stack;
voidempty(stack*s)//初始化棧為空
{
s->top=-1;
}
voidpush(stack*s,intn)//入棧
{if(s->top==size-1)
{printf("棧空間已滿,無法入棧!");
exit(0);
}
s->ele[++s->top]=n;
}
intpop(stack*s)//出棧
{if(s->top==-1)
{printf("空棧,無法出棧!");
exit(0);
}
returns->ele[s->top--];
}
intmain()//主函式
{intnum,j,data;
stack*s;
s=(stack*)malloc(sizeof(stack));
empty(s);
printf("請輸入一個正整數;");
scanf("%d",&num);
printf("請輸入要轉換的進位制數;\n2.二進位制\n8.八進位制\n16.十六進位制\n");
scanf("%d",&j);
while(num)
{data=num%j;
push(s,data);
num=num/j;
}
printf("%d進位制數為:",j);
while(s->top!=-1)
{data=pop(s);
printf("%d",data);
}
return0;
}