In C Programming:
Create a program that converts a number from decimal to binary. A stack MUST be used to
complete the program. Create an implementation of a stack. An array or linked list can be used
as the underlying structure. The following stack functions MUST be implemented into the
program:
• Void pop()
• Void push(int data)
• Int top()
• Int isEmpty()
The program should take decimal input from the user, and convert it to binary, and simply print
it out.
Example: Enter a number to convert to binary: 29 11101
Solution
#include<stdio.h>
#include<conio.h>
#include<process.h>
#define MAX 10
typedef struct stack
{
int data[MAX];
int top;
}stack;
//---------------------
int empty(stack *s)
{
if(s->top==-1)
return(1);
return(0);
}
//----------------------
int full(stack *s)
{
if(s->top==MAX-1)
return(1);
return(0);
}
//-----------------------
void push(stack *s,int x)
{
s->top=s->top+1;
s->data[s->top]=x;
}
//-----------------------
int pop(stack *s)
{
int x;
x=s->data[s->top];
s->top=s->top-1;
return(x);
}
//------------------------
void main()
{
stack s;
int num;
s.top=-1;
printf("nEnter decimal number:");
scanf("%d",&num);
while((num!=0))
{
if(!full(&s))
{
push(&s,num%2);
num=num/2;
}
else
{
printf("nStack overflow");
exit(0);
}
}
printf("n");
while(!empty(&s))
{
num=pop(&s);
printf("%d",num);
}
}

In C Programming- Create a program that converts a number from decimal.docx

  • 1.
    In C Programming: Createa program that converts a number from decimal to binary. A stack MUST be used to complete the program. Create an implementation of a stack. An array or linked list can be used as the underlying structure. The following stack functions MUST be implemented into the program: • Void pop() • Void push(int data) • Int top() • Int isEmpty() The program should take decimal input from the user, and convert it to binary, and simply print it out. Example: Enter a number to convert to binary: 29 11101 Solution #include<stdio.h> #include<conio.h> #include<process.h> #define MAX 10 typedef struct stack { int data[MAX];
  • 2.
    int top; }stack; //--------------------- int empty(stack*s) { if(s->top==-1) return(1); return(0); } //---------------------- int full(stack *s) { if(s->top==MAX-1) return(1); return(0); } //----------------------- void push(stack *s,int x) { s->top=s->top+1; s->data[s->top]=x; } //-----------------------
  • 3.
    int pop(stack *s) { intx; x=s->data[s->top]; s->top=s->top-1; return(x); } //------------------------ void main() { stack s; int num; s.top=-1; printf("nEnter decimal number:"); scanf("%d",&num); while((num!=0)) { if(!full(&s)) { push(&s,num%2); num=num/2; } else
  • 4.