C语言数据结构用栈实现将十进制del转换为r进制

#include <stdio.h>

#include <stdlib.h>

#define maxsize 100

typedef struct stack

{

int datamaxsize;//静态栈

int top;

}Stack;

void initStack(Stack* s)

{

s->top=-1;//如果初始化为-1,push函数中就先++,再赋值,如果初始化为0,就就先赋值,再++

}

int isempty(Stack* s)//判断是否空栈

{

return s->top==-1;

}

int isfull(Stack* s)//判断是否栈满

{

return s->top==maxsize-1;

}

void push(Stack* s,int e)

{

if(isfull(s))

{

printf("Stack overflow!\n");

exit(-1);

}

s->data++(s-\>top)=e;

}

int pop(Stack* s)

{

if(isempty(s))

{

printf("no elemtype!\n");

exit(-1);

}

return s->data(s-\>top)--;

}

void convertdecimaltobase(int del,int r)

{

Stack s;

initStack(&s);

while(del>0)

{

push(&s,del%r);//把余的结果存入栈中,例如十进制1348,八进制为2504

del=del/r;//第一次余得4,先入栈,就后出栈

}

printf("转换的等效%d进制数:>",r);

while(!isempty(&s))

{

printf("%d",pop(&s));//依次出栈

}

printf("\n");

}

int main()

{

int decimalnumber,base;///分别是十进制数和要转=转换的位(例如八进制位)

printf("请输入十进制数:>\n");

scanf("%d",&decimalnumber);

printf("enter the base to convert:>\n");

scanf("%d",&base);

convertdecimaltobase(decimalnumber,base);

return 0;

}

相关推荐
CSharp精选营2 天前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
刘马想放假5 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
北域码匠6 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
Darling噜啦啦13 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
LDR00614 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
小小工匠14 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
Luminous.14 天前
C语言--day30
c语言·开发语言
玖玥拾14 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
謓泽14 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
不会C语言的男孩14 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言