#include<stdio.h>
int n, i, j, at[ 10 ] , bt[ 10 ] , p[ 10 ] , ct[ 10 ] , sum= 0 , tat[ 10 ] , wt[ 10 ] ;
float avgtat, avgwt;
void swap( int a[ ] )
{
int temp= a[ i] ;
a[ i] = a[ j] ;
a[ j] = temp;
}
int main( )
{
printf ( "\n Enter the number pf processes: " ) ; for ( i= 1 ; i<= n; i++ )
{
printf ( "\n Enter the arrival time of P%d: " , i
) ; printf ( "\n Enter the burst time of P%d: " , i
) ; p[ i] = i;
}
for ( i= 1 ; i<= n; i++ )
{
for ( j= i+ 1 ; j<= n; j++ )
{
if ( at[ i] > at[ j] )
{
swap( at) ;
swap( bt) ;
swap( p) ;
}
}
}
for ( i= 1 ; i<= n; i++ )
{
if ( sum< at[ i] )
{
sum= at[ i] + sum;
}
sum= sum+ bt[ i] ;
ct[ i] = sum;
}
for ( i= 1 ; i<= n; i++ )
{
for ( j= i+ 1 ; j<= n; j++ )
{
if ( p[ i] > p[ j] )
{
swap( at) ;
swap( bt) ;
swap( p) ;
swap( ct) ;
}
}
}
for ( i= 1 ; i<= n; i++ )
{
tat[ i] = ct[ i] - at[ i] ;
wt[ i] = tat[ i] - bt[ i] ;
avgtat= avgtat+ tat[ i] ;
avgwt= avgwt+ wt[ i] ;
}
printf ( "\n process at bt ct tat wt" ) ; for ( i= 1 ; i<= n; i++ )
{
printf ( "\n P%d\t \t %d\t %d\t %d\t %d\t %d" , p
[ i
] , at
[ i
] , bt
[ i
] , ct
[ i
] , tat
[ i
] , wt
[ i
] ) ; }
printf ( "\n the average turnaroundtime is: %f" , avgtat
/ n
) ; printf ( "\n the average waiting time is: %f" , avgwt
/ n
) ; return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IG4saSxqLGF0WzEwXSxidFsxMF0scFsxMF0sY3RbMTBdLHN1bT0wLHRhdFsxMF0sd3RbMTBdOwpmbG9hdCBhdmd0YXQsYXZnd3Q7CnZvaWQgc3dhcChpbnQgYVtdKQp7CglpbnQgdGVtcD1hW2ldOwoJYVtpXT1hW2pdOwoJYVtqXT10ZW1wOwp9CmludCBtYWluKCkKewoJcHJpbnRmKCJcbkVudGVyIHRoZSBudW1iZXIgcGYgcHJvY2Vzc2VzOiAiKTsKCXNjYW5mKCIlZCIsJm4pOwoJZm9yKGk9MTtpPD1uO2krKykKCXsKCQlwcmludGYoIlxuRW50ZXIgdGhlIGFycml2YWwgdGltZSBvZiBQJWQ6ICIsaSk7CgkJc2NhbmYoIiVkIiwmYXRbaV0pOwoJCXByaW50ZigiXG5FbnRlciB0aGUgYnVyc3QgdGltZSBvZiBQJWQ6ICIsaSk7CgkJc2NhbmYoIiVkIiwmYnRbaV0pOwoJCXBbaV09aTsKCX0KCWZvcihpPTE7aTw9bjtpKyspCgl7CgkJZm9yKGo9aSsxO2o8PW47aisrKQoJCXsKCQkJaWYoYXRbaV0+YXRbal0pCgkJCXsKCQkJCXN3YXAoYXQpOwoJCQkJc3dhcChidCk7CgkJCQlzd2FwKHApOwoJCQl9CgkJfQoJfQoJZm9yKGk9MTtpPD1uO2krKykKCXsKCQlpZihzdW08YXRbaV0pCgkJewoJCQlzdW09YXRbaV0rc3VtOwoJCX0KCQlzdW09c3VtK2J0W2ldOwoJCWN0W2ldPXN1bTsKCX0KCWZvcihpPTE7aTw9bjtpKyspCgl7CgkJZm9yKGo9aSsxO2o8PW47aisrKQoJCXsKCQkJaWYocFtpXT5wW2pdKQoJCQl7CgkJCQlzd2FwKGF0KTsKCQkJCXN3YXAoYnQpOwoJCQkJc3dhcChwKTsKCQkJCXN3YXAoY3QpOwoJCQl9CgkJfQoJfQoJZm9yKGk9MTtpPD1uO2krKykKCXsKCQl0YXRbaV09Y3RbaV0tYXRbaV07CgkJd3RbaV09dGF0W2ldLWJ0W2ldOwoJCWF2Z3RhdD1hdmd0YXQrdGF0W2ldOwoJCWF2Z3d0PWF2Z3d0K3d0W2ldOwoJfQoJcHJpbnRmKCJcbnByb2Nlc3MgYXQgYnQgY3QgdGF0IHd0Iik7Cglmb3IoaT0xO2k8PW47aSsrKQoJewoJCXByaW50ZigiXG5QJWRcdFx0JWRcdCVkXHQlZFx0JWRcdCVkIixwW2ldLGF0W2ldLGJ0W2ldLGN0W2ldLHRhdFtpXSx3dFtpXSk7Cgl9CglwcmludGYoIlxudGhlIGF2ZXJhZ2UgdHVybmFyb3VuZHRpbWUgaXM6ICVmIixhdmd0YXQvbik7CglwcmludGYoIlxudGhlIGF2ZXJhZ2Ugd2FpdGluZyB0aW1lIGlzOiAlZiIsYXZnd3Qvbik7CglyZXR1cm4gMDsKICAgCQoJCn0=