有劳大神帮忙,做了好久都没做出来,实在想不出了,正处于大一刚学习阶段,还望路过大神帮助,谢谢
/*利用顺序栈结构,编写算法函数void Dto16(unsigned int m)实现十进制无符号整数m到十六进制数的转换功能。
*/
#include "seqstack.h"
#include "stdio.h"
/*请将本函数补充完整,并进行测试*/
void Dto16(int m)
{
seqstack s;
init(&s);
printf("十进制数%d对应的十六进制数是:",m);
while(m)
{
}
while(!empty(&s))
putchar( );
printf("\n");
}
int main()
{ int m;
printf("请输入待转换的十进制数:\n");
scanf("%u",&m);
Dto16(m);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef int datatype;
typedef struct
{ datatype a[MAXSIZE];
int top;
}seqstack;
/**********************************/
/*函数名称:init() */
/*函数功能:初始化空栈 */
/**********************************/
void init(seqstack *st)
{
st->top=0;
}
/**********************************/
/*函数名称:empty() */
/*函数功能:判断栈是否为空 */
/**********************************/
int empty(seqstack *st)
{
return st->top?0:1;
}
/**********************************/
/*函数名称:read() */
/*函数功能:读栈顶元 */
/**********************************/
datatype read(seqstack *st)
{ if (empty(st))
{ printf("\n栈的空的!\n");exit(1);
}
else
return st->a[st->top-1];
}
/**********************************/
/*函数名称:push() */
/*函数功能:进栈 */
/**********************************/
void push(seqstack *st,datatype x)
{ if (st->top==MAXSIZE)
{
printf("栈满,无法进栈!\n");
exit(1);
}
st->a[st->top]=x;
st->top++;
}
/**********************************/
/*函数名称:pop() */
/*函数功能:出栈 */
/**********************************/
datatype pop(seqstack *st)
{ if (st->top==0)
{ printf("\n顺序栈是空的!\n");
exit(1);
}
st->top--;
}