1.先打开visual studio2019
如果是2017版本的
2.输入代码
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#define MAXSIZE 100
typedef struct //定义栈的结构体
{
int data[MAXSIZE];
int top;
}zhan, * Pe;
//声明函数
Pe begin(); //栈的初始化
void push(Pe S, int x); //入栈函数
Pe zhuanjinzhi(int m, int n); //进制转换函数
void destroy(Pe * S); //销毁栈
void out(Pe S); //出栈函数
int main() //主函数
{
Pe S; //初始化S栈
int x, y;
printf("输入要转换的十进制数和要转换的进制:\n");
scanf_s("%d %d", &x, &y); //2019的版本需要在scanf后加_s才能使用
S = zhuanjinzhi(x, y); //调用zhuanjinzhi函数
out(S); //输出
destroy(&S); //销毁栈
}
Pe begin() //初始化栈
{
Pe S;
S = (Pe)malloc(sizeof(zhan)); //申请内存
if (S)
S->top = -1;
return S;
}
void push(Pe S, int x) //进栈
{
S->top++;
S->data[S->top] = x;
}
Pe zhuanjinzhi(int m, int n) //转进制,获得两个值,一个是要转的十进制m的值,一个是转成n进制
{
Pe S;
S = begin();
int k;
while (m != 0)
{
k = m % n;
push(S, k); //让结果进栈
m = m / n;
}
return S;
}
void destroy(Pe * S) //销毁栈
{
if (*S)
free(*S); //释放
*S = NULL;
}
void out(Pe S) //输出栈
{
while (S->top != -1)
{
printf("%d", S->data[S->top]);
S->top--;
}
}