永发信息网

写一C的代码,用到栈,把一个十进制数变成十六进制的数输出

答案:1  悬赏:0  手机版
解决时间 2021-04-21 10:31
最佳答案

只编了一个整数转换的


#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct SqStack
{
int *base;
int *top;
int stacksize;
}
SqStack;
void InitStack(SqStack *S)
{
S->base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));
S->top=S->base;
S->stacksize=STACK_INIT_SIZE;
}
void Push(SqStack *S,int e)
{
if(S->top-S->base>=S->stacksize)
{
S->base=(int*)realloc(S->base,
(S->stacksize+STACKINCREMENT)*sizeof(int));
S->top=S->base+S->stacksize;
S->stacksize+=STACKINCREMENT;
}
*(S->top)=e;
S->top++;
}
int Pop(SqStack *S)
{
S->top --;
return *S->top;


}
int StackEmpty(SqStack *S)
{
if(S->top == S->base )
return 1;
else
return 0;
}
void conversion(int a)
{
SqStack S;int e;
InitStack(&S);
while(a)
{
Push(&S,a%16);
a=a/16;
}
while(!StackEmpty(&S))
{
e=Pop(&S);
switch (e)
{
case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
default: printf("%d",e);
}
}

}
void main()
{
int a;
printf("输入个十进制数\n");
scanf("%d",&a);
printf("得到的为:\n");
conversion(a);
}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
安眠药能让人长眠吗?
“求求你,再回到我身边,求求你,再让我爱你
诺基亚N85音乐播放器
绿宝石493的神兽怎么抓。
怎样邀请好友玩牧场啊
冬天身体发冷怎么简单解决,我感觉体温不停往
官造坪在什么地方啊,我要过去处理事情
短歌行名句赏析,短歌行名句默写
怎样能获得更多经验
Flash转换王 V11.5 Build 2950 白金版注册机
流着眼泪唱情歌网址
写动物的段落摘抄,描写动物的文章摘抄其中的
如果现在结婚,日子久了,厌卷老公,而又有了
西锦御园北门地址在什么地方,想过去办事
毒王的撞撞连
推荐资讯
猪屁股上两滴水
雏菊的片头曲的名字!!!
一切相遇都是久别重逢,最狠的相遇是久别重逢
拔甲后指甲下面的肉变硬掀起来了是怎么回事啊
怎样才能忘记一个伤了你的人
索尼NW-A805MP4的耳机多少钱
能不能把张根锡版的和朴信惠版的如何是好发给
为什么男生要欺负女生呢
2009年9月份全国计算机二级成绩查询的网址...
红运渔具我想知道这个在什么地方
少年杨家将里面,杨六郎和柴郡主的两年之约是
男孩姓吕,有什么好听的名字?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?