#include <stdio.h>
int main() {
int n = 3;
int process[20] = {1, 2, 3};
int burst_time[20] = {5, 3, 8};
int waiting_time[20], turnaround_time[20];
int total_wt = 0, total_tat = 0;
float avg_wt, avg_tat;
int i, j;
// Sort processes based on burst time (SJF)
for(i = 0; i < n - 1; i++) {
for(j = i + 1; j < n; j++) {
if(burst_time[i] > burst_time[j]) {
int temp = burst_time[i];
burst_time[i] = burst_time[j];
burst_time[j] = temp;
temp = process[i];
process[i] = process[j];
process[j] = temp;
}
}
}
waiting_time[0] = 0; // First process waiting time is 0
for(i = 1; i < n; i++) {
waiting_time[i] = 0;
for(j = 0; j < i; j++) {
waiting_time[i] += burst_time[j];
}
}
printf("Process\tBurst Time\tWaiting Time\tTurnaround Time\n"); for(i = 0; i < n; i++) {
turnaround_time[i] = burst_time[i] + waiting_time[i];
total_wt += waiting_time[i];
total_tat += turnaround_time[i];
printf("%d\t%d\t\t%d\t\t%d\n", process
[i
], burst_time
[i
], waiting_time
[i
], turnaround_time
[i
]); }
avg_wt = (float) total_wt / n;
avg_tat = (float) total_tat / n;
printf("Average Waiting Time: %.2f\n", avg_wt
); printf("Average Turnaround Time: %.2f\n", avg_tat
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKICAgIGludCBuID0gMzsKICAgIGludCBwcm9jZXNzWzIwXSA9IHsxLCAyLCAzfTsKICAgIGludCBidXJzdF90aW1lWzIwXSA9IHs1LCAzLCA4fTsKICAgIGludCB3YWl0aW5nX3RpbWVbMjBdLCB0dXJuYXJvdW5kX3RpbWVbMjBdOwogICAgaW50IHRvdGFsX3d0ID0gMCwgdG90YWxfdGF0ID0gMDsKICAgIGZsb2F0IGF2Z193dCwgYXZnX3RhdDsKICAgIGludCBpLCBqOwoKICAgIC8vIFNvcnQgcHJvY2Vzc2VzIGJhc2VkIG9uIGJ1cnN0IHRpbWUgKFNKRikKICAgIGZvcihpID0gMDsgaSA8IG4gLSAxOyBpKyspIHsKICAgICAgICBmb3IoaiA9IGkgKyAxOyBqIDwgbjsgaisrKSB7CiAgICAgICAgICAgIGlmKGJ1cnN0X3RpbWVbaV0gPiBidXJzdF90aW1lW2pdKSB7CiAgICAgICAgICAgICAgICBpbnQgdGVtcCA9IGJ1cnN0X3RpbWVbaV07CiAgICAgICAgICAgICAgICBidXJzdF90aW1lW2ldID0gYnVyc3RfdGltZVtqXTsKICAgICAgICAgICAgICAgIGJ1cnN0X3RpbWVbal0gPSB0ZW1wOwoKICAgICAgICAgICAgICAgIHRlbXAgPSBwcm9jZXNzW2ldOwogICAgICAgICAgICAgICAgcHJvY2Vzc1tpXSA9IHByb2Nlc3Nbal07CiAgICAgICAgICAgICAgICBwcm9jZXNzW2pdID0gdGVtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICB3YWl0aW5nX3RpbWVbMF0gPSAwOyAvLyBGaXJzdCBwcm9jZXNzIHdhaXRpbmcgdGltZSBpcyAwCgogICAgZm9yKGkgPSAxOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgd2FpdGluZ190aW1lW2ldID0gMDsKICAgICAgICBmb3IoaiA9IDA7IGogPCBpOyBqKyspIHsKICAgICAgICAgICAgd2FpdGluZ190aW1lW2ldICs9IGJ1cnN0X3RpbWVbal07CiAgICAgICAgfQogICAgfQoKICAgIHByaW50ZigiUHJvY2Vzc1x0QnVyc3QgVGltZVx0V2FpdGluZyBUaW1lXHRUdXJuYXJvdW5kIFRpbWVcbiIpOwogICAgZm9yKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgdHVybmFyb3VuZF90aW1lW2ldID0gYnVyc3RfdGltZVtpXSArIHdhaXRpbmdfdGltZVtpXTsKICAgICAgICB0b3RhbF93dCArPSB3YWl0aW5nX3RpbWVbaV07CiAgICAgICAgdG90YWxfdGF0ICs9IHR1cm5hcm91bmRfdGltZVtpXTsKICAgICAgICBwcmludGYoIiVkXHQlZFx0XHQlZFx0XHQlZFxuIiwgcHJvY2Vzc1tpXSwgYnVyc3RfdGltZVtpXSwgd2FpdGluZ190aW1lW2ldLCB0dXJuYXJvdW5kX3RpbWVbaV0pOwogICAgfQoKICAgIGF2Z193dCA9IChmbG9hdCkgdG90YWxfd3QgLyBuOwogICAgYXZnX3RhdCA9IChmbG9hdCkgdG90YWxfdGF0IC8gbjsKCiAgICBwcmludGYoIkF2ZXJhZ2UgV2FpdGluZyBUaW1lOiAlLjJmXG4iLCBhdmdfd3QpOwogICAgcHJpbnRmKCJBdmVyYWdlIFR1cm5hcm91bmQgVGltZTogJS4yZlxuIiwgYXZnX3RhdCk7CgogICAgcmV0dXJuIDA7Cn0K