(Usando la implementación de pila) Ingrese un entero decimal positivo y genere su número octal y hexadecimal
#include lt; stdio.hgt;
#include lt; stdlib.hgt
#define tamaño máximo 50
typedef int; tipo de elemento;
estructura typedef
{
datos de tipo de elemento[50]; sqstack; /*Definición de tipo de pila secuencial*/
void initstack(sqstack *s) /*Crear una pila vacía*/
{
s=( sqstack *)malloc(sizeof(sqstack));
s-gt; top=-1
}
int stacklength(sqstack *s) / * Encuentra la longitud de la pila*/
{
return (s-gt; top 1
}
elemtype gettop(); sqstack * s)/*Obtener el elemento superior de la pila*/
{
elemtype x
if(s-gt;top==- 1) devolver 0;
x=s-gt;datos[s-gt;top];
devolver x
}
int push( sqstack *s, elemtype x)/*Insertar nuevo elemento en la parte superior de la pila*/
{
s-gt;top;
s-gt;datos [s-gt; arriba]=x;
return 1;
}
int pop(sqstack *s) /*Eliminar el elemento superior de la pila*/
{
if(s-gt;top==-1) return
else s; -gt;top--;
return 1;
}
int stackempty(sqstack *s)/*determina si la pila está vacía*/
{
if(s-gt;top==-1) devuelve 1;
si no, devuelve 0
}
p>
visita nula(sqstack *s)
{
int i
elemtype x
i=s; -gt; arriba;
mientras(i!=-1)
{x=s-gt;datos[i]; lt;brgt;i--; lt; brgt;}
printf("\n");
}
void clearstack(sqstack *) s)
{ p>
s-gt; top=-1
}
void convert(int n, int e) /*Convierte el número decimal n en número de base electrónica y genera */
{
int i
sqstack *s;
p>initstack(s);
mientras(n)
{
i=ne
n=n/e;
push(s, i);
}
printf("el número después de la conversión:\n"); (!stackempty(s))
{
printf("d",gettop(s));
pop(s);
}
}
void main()
{
int i, j
clrscr();
printf("Ingrese el número que desea convertir:");
scanf("d",amp;i
); printf("Ingrese el hexadecimal: ");
scanf("d",&j
convert(i,j); ;
}