Professional Documents
Culture Documents
#include<stdio.h>
int main()
int count,j,n,time,flag=0,time_quantum,ch=0;
int wait_time=0,turnaround_time=0,at[10],bt[10],rt[10];
int endTime,i,smallest;
int remain=0,sum_wait=0,sum_turnaround=0;
scanf("%d",&ch);
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&at[i]);
scanf("%d",&bt[i]);
rt[i]=bt[i];
}
switch(ch)
case 1:
scanf("%d",&time_quantum);
remain=n;
for(time=0,count=0;remain!=0;)
time+=rt[count];
rt[count]=0;
flag=1;
else if(rt[count]>0)
rt[count]-=time_quantum;
time+=time_quantum;
}
if(rt[count]==0 && flag==1)
remain--;
printf("P[%d]\t|\t%d\t|\t%d\n",count+1,time-
at[count],time-at[count]-bt[count]);
wait_time+=time-at[count]-bt[count];
turnaround_time+=time-at[count];
flag=0;
if(count==n-1)
count=0;
else if(at[count+1]<=time)
count++;
else
count=0;
break;
case 2:
remain=0;
rt[9]=9999;
for(time=0;remain!=n;time++)
smallest=9;
for(i=0;i<n;i++)
smallest=i;
rt[smallest]--;
if(rt[smallest]==0)
remain++;
endTime=time+1;
printf("\nP[%d]\t|\t%d\t|\t%d",smallest+1,endTime-
at[smallest],endTime-bt[smallest]-at[smallest]);
printf("\n");
sum_wait+=endTime-bt[smallest]-at[smallest];
sum_turnaround+=endTime-at[smallest];
}
printf("\nAverage waiting time =
%f\n",sum_wait*1.0/n);
break;
default:
printf("Invalid\n");
return 0;