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

#include <stdio.h>

#include <stdlib.h>

#define maxsize 100

typedef struct stack

{

int data[maxsize];//静态栈

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;

}

相关推荐
Y4090013 分钟前
C语言转Java语言,相同与相异之处
java·c语言·开发语言·笔记
棐木8 小时前
【C语言】动态内存管理
c语言·free·malloc·realloc·calloc·动态内存
好易学·数据结构9 小时前
可视化图解算法56:岛屿数量
数据结构·算法·leetcode·力扣·回溯·牛客网
屁股割了还要学12 小时前
【C语言进阶】内存函数
c语言·开发语言·学习·算法·青少年编程
耳总是一颗苹果12 小时前
C语言---自定义类型(上)(结构体类型)
c语言·开发语言
Ashlee_code15 小时前
裂变时刻:全球关税重构下的券商交易系统跃迁路线图(2025-2027)
java·大数据·数据结构·python·云原生·区块链·perl
闻缺陷则喜何志丹15 小时前
【带权的并集查找】 P9235 [蓝桥杯 2023 省 A] 网络稳定性|省选-
数据结构·c++·蓝桥杯·洛谷·并集查找
jie*15 小时前
python(one day)——春水碧于天,画船听雨眠。
开发语言·数据结构·python·算法·线性回归
Chef_Chen16 小时前
从0开始学习R语言--Day49--Lasso-Cox 回归
学习·回归·r语言
basketball61616 小时前
Linux C 进程基本操作
linux·运维·服务器·c语言·后端