shortest job first

#include<stdio.h>

void findWaitingTime(int processes[], int n, int bt[], int wt[]) {
    wt[0] = 0;

    for (int i = 1; i < n ; i++ )
        wt[i] = bt[i-1] + wt[i-1];
}

void findTurnAroundTime(int processes[], int n, int bt[], int wt[], int tat[]) {
    for (int i = 0; i < n ; i++)
        tat[i] = bt[i] + wt[i];
}

void findAverageTime(int processes[], int n, int bt[]) {
    int wt[n], tat[n];

    findWaitingTime(processes, n, bt, wt);
    findTurnAroundTime(processes, n, bt, wt, tat);

    float total_wt = 0, total_tat = 0;
    for (int i = 0; i < n; i++) {
        total_wt = total_wt + wt[i];
        total_tat = total_tat + tat[i];
    }

    float avg_wt = total_wt / n;
    float avg_tat = total_tat / n;

    printf("Average Waiting Time: %f\n", avg_wt);
    printf("Average Turn-Around Time: %f\n", avg_tat);
}

void findCompletionTime(int processes[], int n, int bt[], int ct[]) {
    ct[0] = bt[0];

    for (int i = 1; i < n ; i++)
        ct[i] = bt[i] + ct[i-1];
}

void findShortestJobFirst(int processes[], int n, int bt[]) {
    int wt[n], tat[n], ct[n];

    findCompletionTime(processes, n, bt, ct);
    findWaitingTime(processes, n, bt, wt);
    findTurnAroundTime(processes, n, bt, wt, tat);

    printf("Process\tBurst Time\tWaiting Time\tTurn-Around Time\tCompletion Time\n");

    for (int i = 0; i < n; i++)
        printf("%d\t%d\t\t%d\t\t%d\t\t%d\n", i+1, bt[i], wt[i], tat[i], ct[i]);
}

int main() {
    int processes[] = {1, 2, 3};
    int n = sizeof processes / sizeof processes[0];

    int burst_time[] = {6, 8, 7};

    findShortestJobFirst(processes, n, burst_time);

    return 0;
}