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