Untitled

 avatar
unknown
plain_text
a year ago
1.1 kB
5
Indexable
#include<stdio.h>
struct process{
	int at;
	int bt;
	int wt;
	int ct;
	int tat;
	int fl;	
};
void main()
{
	int i,n,pc=0,curt=0,avgtat=0,avgwt=0;
	printf("enter the no of processes:");
	scanf("%d",&n);
	struct process p[n];
	for(i=0;i<n;i++)
	{
		printf("enter the arrival time and burst time of process %d:\n",i+1);
		scanf("%d%d",&p[i].at,&p[i].bt);
		p[i].fl=0;
	}
	while(pc<n)
	{
		int min=-1;
		for(i=0;i<n;i++)
		{
			if(p[i].at<=curt && p[i].fl==0)
			{
				if(min==-1 || p[i].bt<p[min].bt)
				{	
					min=i;
				}
			}
		}
		if(min==-1)
			curt++;
		else
		{
			pc++;
			p[min].ct=curt+p[min].bt;
			curt+=p[min].bt;
			p[min].tat=p[min].ct-p[min].at;
			p[min].wt=p[min].tat-p[min].bt;
			avgtat+=p[min].tat;
			avgwt+=p[min].wt;
			p[min].fl=1;
		}
	
	}
	printf("\nprocess\t\tat\t\tbt\t\tct\t\ttat\t\twt\t\n");
	for(i=0;i<n;i++)
	{
		printf("%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\n",i+1,p[i].at,p[i].bt,p[i].ct,p[i].tat,p[i].wt);
	}
	printf("Average Turn Around Time:%.2f\n",(float)avgtat/n);
	printf("Average Waiting Time:%.2f\n",(float)avgwt/n);
}
Editor is loading...
Leave a Comment