#include <stdio.h>
int main( ) {
int n, i;
int bt[ 20 ] , wt[ 20 ] , tat[ 20 ] ;
float total_wt = 0 , total_tat = 0 ;
printf ( "Enter number of processes: " ) ;
printf ( "Enter burst time for each process:\n " ) ; for ( i = 0 ; i < n; i++ ) {
}
// Waiting time for first process is always 0
wt[ 0 ] = 0 ;
// Calculate waiting time for all processes
for ( i = 1 ; i < n; i++ ) {
wt[ i] = wt[ i - 1 ] + bt[ i - 1 ] ;
}
// Calculate turnaround time and totals
printf ( "\n Process\t Burst Time\t Waiting Time\t Turnaround Time\n " ) ; for ( i = 0 ; i < n; i++ ) {
tat[ i] = bt[ i] + wt[ i] ;
total_wt += wt[ i] ;
total_tat += tat[ i] ;
printf ( "P%d\t \t %d\t \t %d\t \t %d\n " , i
+ 1 , bt
[ i
] , wt
[ i
] , tat
[ i
] ) ; }
// Print averages
printf ( "\n Average Waiting Time: %.2f" , total_wt
/ n
) ; printf ( "\n Average Turnaround Time: %.2f\n " , total_tat
/ n
) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKICAgIGludCBuLCBpOwogICAgaW50IGJ0WzIwXSwgd3RbMjBdLCB0YXRbMjBdOwogICAgZmxvYXQgdG90YWxfd3QgPSAwLCB0b3RhbF90YXQgPSAwOwoKICAgIHByaW50ZigiRW50ZXIgbnVtYmVyIG9mIHByb2Nlc3NlczogIik7CiAgICBzY2FuZigiJWQiLCAmbik7CgogICAgcHJpbnRmKCJFbnRlciBidXJzdCB0aW1lIGZvciBlYWNoIHByb2Nlc3M6XG4iKTsKICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoIlAlZDogIiwgaSArIDEpOwogICAgICAgIHNjYW5mKCIlZCIsICZidFtpXSk7CiAgICB9CgogICAgLy8gV2FpdGluZyB0aW1lIGZvciBmaXJzdCBwcm9jZXNzIGlzIGFsd2F5cyAwCiAgICB3dFswXSA9IDA7IAogICAgLy8gQ2FsY3VsYXRlIHdhaXRpbmcgdGltZSBmb3IgYWxsIHByb2Nlc3NlcwogICAgZm9yIChpID0gMTsgaSA8IG47IGkrKykgewogICAgICAgIHd0W2ldID0gd3RbaSAtIDFdICsgYnRbaSAtIDFdOwogICAgfQoKICAgIC8vIENhbGN1bGF0ZSB0dXJuYXJvdW5kIHRpbWUgYW5kIHRvdGFscwogICAgcHJpbnRmKCJcblByb2Nlc3NcdEJ1cnN0IFRpbWVcdFdhaXRpbmcgVGltZVx0VHVybmFyb3VuZCBUaW1lXG4iKTsKICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICB0YXRbaV0gPSBidFtpXSArIHd0W2ldOwogICAgICAgIHRvdGFsX3d0ICs9IHd0W2ldOwogICAgICAgIHRvdGFsX3RhdCArPSB0YXRbaV07CiAgICAgICAgcHJpbnRmKCJQJWRcdFx0JWRcdFx0JWRcdFx0JWRcbiIsIGkgKyAxLCBidFtpXSwgd3RbaV0sIHRhdFtpXSk7CiAgICB9CgogICAgLy8gUHJpbnQgYXZlcmFnZXMKICAgIHByaW50ZigiXG5BdmVyYWdlIFdhaXRpbmcgVGltZTogJS4yZiIsIHRvdGFsX3d0IC8gbik7CiAgICBwcmludGYoIlxuQXZlcmFnZSBUdXJuYXJvdW5kIFRpbWU6ICUuMmZcbiIsIHRvdGFsX3RhdCAvIG4pOwoKICAgIHJldHVybiAwOwp9