/*CSEMATTER.BLOGSPOT.IN
C Program to implement producer consumer problem*/
#include<stdio.h>
#include<conio.h>
int main()
{
int producer(int [],int,int);
int consumer(int [],int,int);
int buffer[20],max,n,a=0,a1=0,ch,cons=0;
printf("\n\n\n\tEnter Stack Size :");
scanf("%d",&max);
do
{
printf("\n\t\tCHOICES\n\t\t\n\t1.Producer\n\t2.Consumer\n\t3.Exit\nEnter your choice :\n ");
scanf("%d",&ch);
switch(ch)
{
case 1:
{
if(a==max & cons==0)
{printf("STACK FULL...\n");
break;}
else if(cons==2)
{
printf("Consumer has not consumed all item yet");
break;
}
else
{a=producer(buffer,max,a);
break;}
}
case 2:
{if(a!=max)
{printf("STACK NOT FULL YET...PRODUCER TURNS TO PRODUCE\n");
break;}
if(a==max)
{a1=consumer(buffer,max,a1);
if(a1==max)
{a=0;
cons=0;}
else
cons=2;}
break;}
case 3:
break;
}
}
while(ch!=3);
getch();
}
int producer(int buffer[20],int max,int a)
{
int i,n;
int counter=a;
printf("Enter the no. of items to be produced");
scanf("%d",&n);
for(i=a;i<a+n;i++)
{
printf("Enter the item to be produced");
scanf("%d",&buffer[i]);
counter=counter+1;
}
return(counter);
}
int consumer(int buffer[20],int max,int a1)
{
int i,n;
int counter1=a1;
printf("Enter the no. of items to be consumed");
scanf("%d",&n);
for(i=a1;i<a1+n;i++)
{
printf("Consumed item is: %d \n",buffer[i]);
buffer[i]=0;
counter1=counter1+1;
}
return(counter1);}
/*OUTPUT
Enter Stack Size :5
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
2
STACK NOT FULL YET...PRODUCER TURNS TO PRODUCE
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
1
Enter the no. of items to be produced3
Enter the item to be produced1
Enter the item to be produced2
Enter the item to be produced3
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
2
STACK NOT FULL YET...PRODUCER TURNS TO PRODUCE
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
1
Enter the no. of items to be produced2
Enter the item to be produced4
Enter the item to be produced5
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
1
STACK FULL...
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
2
Enter the no. of items to be consumed3
Consumed item is: 1
Consumed item is: 2
Consumed item is: 3
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
1
Consumer has not consumed all item yet
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
2
Enter the no. of items to be consumed2
Consumed item is: 4
Consumed item is: 5
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
3 */
C Program to implement producer consumer problem*/
#include<stdio.h>
#include<conio.h>
int main()
{
int producer(int [],int,int);
int consumer(int [],int,int);
int buffer[20],max,n,a=0,a1=0,ch,cons=0;
printf("\n\n\n\tEnter Stack Size :");
scanf("%d",&max);
do
{
printf("\n\t\tCHOICES\n\t\t\n\t1.Producer\n\t2.Consumer\n\t3.Exit\nEnter your choice :\n ");
scanf("%d",&ch);
switch(ch)
{
case 1:
{
if(a==max & cons==0)
{printf("STACK FULL...\n");
break;}
else if(cons==2)
{
printf("Consumer has not consumed all item yet");
break;
}
else
{a=producer(buffer,max,a);
break;}
}
case 2:
{if(a!=max)
{printf("STACK NOT FULL YET...PRODUCER TURNS TO PRODUCE\n");
break;}
if(a==max)
{a1=consumer(buffer,max,a1);
if(a1==max)
{a=0;
cons=0;}
else
cons=2;}
break;}
case 3:
break;
}
}
while(ch!=3);
getch();
}
int producer(int buffer[20],int max,int a)
{
int i,n;
int counter=a;
printf("Enter the no. of items to be produced");
scanf("%d",&n);
for(i=a;i<a+n;i++)
{
printf("Enter the item to be produced");
scanf("%d",&buffer[i]);
counter=counter+1;
}
return(counter);
}
int consumer(int buffer[20],int max,int a1)
{
int i,n;
int counter1=a1;
printf("Enter the no. of items to be consumed");
scanf("%d",&n);
for(i=a1;i<a1+n;i++)
{
printf("Consumed item is: %d \n",buffer[i]);
buffer[i]=0;
counter1=counter1+1;
}
return(counter1);}
/*OUTPUT
Enter Stack Size :5
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
2
STACK NOT FULL YET...PRODUCER TURNS TO PRODUCE
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
1
Enter the no. of items to be produced3
Enter the item to be produced1
Enter the item to be produced2
Enter the item to be produced3
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
2
STACK NOT FULL YET...PRODUCER TURNS TO PRODUCE
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
1
Enter the no. of items to be produced2
Enter the item to be produced4
Enter the item to be produced5
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
1
STACK FULL...
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
2
Enter the no. of items to be consumed3
Consumed item is: 1
Consumed item is: 2
Consumed item is: 3
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
1
Consumer has not consumed all item yet
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
2
Enter the no. of items to be consumed2
Consumed item is: 4
Consumed item is: 5
CHOICES
1.Producer
2.Consumer
3.Exit
Enter your choice :
3 */
No comments:
Post a Comment