⭐️写在前面的话⭐️
📒博客主页: 程序员好冰
🎉欢迎 【点赞👍 关注🔎 收藏⭐️ 留言📝】
📌本文由 程序员好冰 原创,CSDN 首发!
📆入站时间: 🌴2022 年 07 月 13 日🌴
✉️ 是非不入松风耳,花落花开只读书。
💭推荐书籍:📚《Java编程思想》,📚《Java 核心技术卷》
💬参考在线编程网站:🌐牛客网🌐力扣
🍭 作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!🍭
数制转换(简单版)
#include <stdio.h>
#include <stdlib.h>
//进制转换
/*功能:输入一个大于0的十进制数整数以及需要转换的进制n*/
#define OK 1
#define ERROR -1
typedef int ElemType;
typedef int Status;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode;
typedef struct LinkStack
{
LNode *top;
int count;
}LinkStack;
Status InitStack(LinkStack *L)
{
L->top = (LNode*)malloc(sizeof(LNode));
if(!L->top){
return ERROR;
}
L->top=NULL;
L->count=0;
return OK;
}
Status StackIsEmpty(LinkStack L)
{
if(L.top==NULL){
return OK;
}
if(L.top!=NULL){
return ERROR;
}
return OK;
}
/*压栈,需要传一个数据值,形参*/
Status Push(LinkStack *L,ElemType e)
{
LNode *s=(LNode*)malloc(sizeof(LNode));
s->data=e;
s->next=L->top;
L->top=s;
L->count++;
return OK;
}
/*弹栈,需要传出一个数据值,引用传递*/
Status Pop(LinkStack *L,ElemType *e)
{
if(L->top==NULL){
return ERROR;
}
*e=L->top->data;
LNode *temp;
temp=L->top;
L->top=L->top->next;
free(temp);
L->count--;
return OK;
}
Status PrintStack(LinkStack L)
{
if(L.top==NULL){
return ERROR;
}
while(L.top){
printf("%d",L.top->data);
L.top=L.top->next;
}
printf("\n");
return OK;
}
Status Num_Sys_Conver(int m,int n)
{
LinkStack L;
InitStack(&L);
ElemType d;//要入栈的值
while(m!=0){
d=m%n;
Push(&L,d);
m=m/n;
}
PrintStack(L);
return OK;
}
int main()
{
printf("链栈创建成功,请继续操作.\n");
int m,n;
while(1){
printf("\n==========================\n");
printf("栈应用之数制转换.\n");
printf("请输入一个大于0的十进制数整数和需要转换的进制N(m,n):");
scanf("%d,%d",&m,&n);
Num_Sys_Conver(m,n);
printf("==========================\n");
}
return 0;
}
运行效果
🚀先看后赞,养成习惯!🚀
🚀 先看后赞,养成习惯!🚀
🎈觉得文章写得不错的老铁们,点赞评论关注走一波!谢谢啦!🎈