Facebook
From fcfs, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 153
  1.  
  2.         #include<stdio.h>
  3.         #include<string.h>
  4.          
  5.         float avgwt, avgtt;
  6.         char pname[10][10], c[10][10];
  7.         int at[10], wt[10], tt[10], bt[10], n, sum = 0, ttime, j, ss = 0, count = 0, indexar[10], ix = 0, k, ix1, ix2, choice;
  8.        
  9.          void table()
  10.          {
  11.                      int i;
  12.             printf("\nPROCESS\t ARRIVAL TIME \t BURST TIME \t WAITING TIME \t TURN AROUND TIME\t");
  13.             for (i = 0; i < n; i++) {
  14.                 printf("\n%s\t\t%d\t\t%d\t\t%d\t\t%d\t", pname[i],at[i],bt[i],wt[i],tt[i]);
  15.             }
  16.            
  17.         }
  18.        
  19.        
  20.         void gantt_chart() {
  21.             int i;
  22.             printf("\nGRANTT CHART\n");
  23.             for (i = 0; i < n; i++) {
  24.                 printf("|\t%s\t", pname[i]);
  25.             }
  26.             printf("|\n");
  27.          
  28.             for (i = 0; i < n; i++) {
  29.                 printf("%d\t\t", wt[i]);
  30.             }
  31.             printf("%d\n", ss);
  32.         }
  33.          
  34.         int main() {
  35.             printf("Enter the number of processes:");
  36.             scanf("%d", &n);
  37.          
  38.             printf("Enter the NAME, ARRIVAL TIME, BURST TIME of the process\n");
  39.          
  40.             for (int i = 0; i < n; i++) {
  41.                 printf("\nPROCESS NAME: ");
  42.                 scanf("%s", pname[i]);
  43.                 printf("ARRIVAL TIME: ");
  44.                 scanf("%d", &at;[i]);
  45.                 printf("BURST TIME: ");
  46.                 scanf("%d", &bt;[i]);
  47.             }
  48.            
  49.            
  50.                for (int i = 0; i < n; i++) {
  51.                 for (int j = i + 1; j < n; j++) {
  52.                     if (at[i] > at[j]) {
  53.                         int temp = bt[i];
  54.                         bt[i] = bt[j];
  55.                         bt[j] = temp;
  56.          
  57.                         temp = at[i];
  58.                         at[i] = at[j];
  59.                         at[j] = temp;
  60.          
  61.                         char tempStr[10];
  62.                         strcpy(tempStr, pname[i]);
  63.                         strcpy(pname[i], pname[j]);
  64.                         strcpy(pname[j], tempStr);
  65.                         }
  66.                    
  67.                    
  68.                 }
  69.             }
  70.             wt[0] = at[0];
  71.                     sum = 0;
  72.                     ss = bt[0];
  73.                     tt[0] = wt[0] + bt[0];
  74.                     for (int i = 1; i < n; i++) {
  75.                         wt[i] = wt[i - 1] + bt[i - 1];
  76.                         sum = sum + (wt[i] - at[i]);
  77.                         tt[i] = wt[i] + bt[i];
  78.                         ss = ss + bt[i];
  79.                     }
  80.                     avgwt = (float)sum / n;
  81.                     avgtt = (float)ss / n;
  82.                     printf("\nAverage waiting time=%f", avgwt);
  83.                     printf("\nAverage turn-around time=%f", avgtt);
  84.                     printf("\nGANTT CHART FCFS SCHEDULING\n");
  85.                     table();
  86.                     gantt_chart();
  87.                      return 0;
  88.                     }