Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Shortest job first
- #include <stdio.h>
- #include <stdlib.h>
- struct process {
- int bt , art , wt;
- } p[20];
- int n;
- int ans[2][20];
- int main () {
- scanf("%d", &n);
- for (int i = 1; i <= n; ++ i) { arbt
- printf("Burst time and arrival time of process number %d\n" , i);
- scanf("%d%d",&p[i].bt , &p[i].art);
- ans[0][i]=p[i].bt;
- ans[1][i]=p[i].art;
- }
- int t=0;
- int cnt=0;
- int s=0;
- p[0].bt=10000;
- p[0].art=10000;
- while(cnt<n){
- int mini=0;
- int done=0;
- for(int i=1 ; i<=n ; ++i){
- if(p[i].art<=t && p[i].bt<=p[mini].bt){
- mini=i;
- done=1;
- }
- }
- if(done==0){
- t++;
- continue;
- }
- cnt++;
- t+=p[mini].bt;
- p[mini].wt=t-p[mini].bt-p[mini].art;
- s+=p[mini].wt;
- p[mini].bt=11111;
- //printf("%d\n" , mini);
- }
- double AT=(double)s;
- printf("\nAverage Waiting Time:%f\n", AT / n);
- for (int i = 1; i <= n; ++ i) {
- printf ("Process: %d -> Works: %d, Waits: %d, All: %d\n", i, ans[0][i], p[i].wt, ans[0][i] + p[i].wt);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement