fork download
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. int n = 3;
  5. int process[20] = {1, 2, 3};
  6. int burst_time[20] = {5, 3, 8};
  7. int waiting_time[20], turnaround_time[20];
  8. int total_wt = 0, total_tat = 0;
  9. float avg_wt, avg_tat;
  10. int i, j;
  11.  
  12. // Sort processes based on burst time (SJF)
  13. for(i = 0; i < n - 1; i++) {
  14. for(j = i + 1; j < n; j++) {
  15. if(burst_time[i] > burst_time[j]) {
  16. int temp = burst_time[i];
  17. burst_time[i] = burst_time[j];
  18. burst_time[j] = temp;
  19.  
  20. temp = process[i];
  21. process[i] = process[j];
  22. process[j] = temp;
  23. }
  24. }
  25. }
  26.  
  27. waiting_time[0] = 0; // First process waiting time is 0
  28.  
  29. for(i = 1; i < n; i++) {
  30. waiting_time[i] = 0;
  31. for(j = 0; j < i; j++) {
  32. waiting_time[i] += burst_time[j];
  33. }
  34. }
  35.  
  36. printf("Process\tBurst Time\tWaiting Time\tTurnaround Time\n");
  37. for(i = 0; i < n; i++) {
  38. turnaround_time[i] = burst_time[i] + waiting_time[i];
  39. total_wt += waiting_time[i];
  40. total_tat += turnaround_time[i];
  41. printf("%d\t%d\t\t%d\t\t%d\n", process[i], burst_time[i], waiting_time[i], turnaround_time[i]);
  42. }
  43.  
  44. avg_wt = (float) total_wt / n;
  45. avg_tat = (float) total_tat / n;
  46.  
  47. printf("Average Waiting Time: %.2f\n", avg_wt);
  48. printf("Average Turnaround Time: %.2f\n", avg_tat);
  49.  
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
Process	Burst Time	Waiting Time	Turnaround Time
2	3		0		3
1	5		3		8
3	8		8		16
Average Waiting Time: 3.67
Average Turnaround Time: 9.00