zoukankan      html  css  js  c++  java
  • fcfs

    #include<stdio.h>
    #include<stdlib.h>
    #define N 100


    typedef struct process
    {
     int time;  //需要时间
        char name;
     int end;
     
     int freetime;   //剩余剩余时间
     int arrivetime;   //到达时间
     int finish;        //完成时间
     int turn;          //周转时间
     double average;    //平均带权周转时间
    }P;

    P a[N],b;
    int wordtime=0;

    void fcfs(int i,int t,int n)
    {
     a[0].finish=a[0].arrivetime+a[0].freetime;//给予a[0]初值
     wordtime=a[0].finish;
        a[0].turn=a[0].time;
     a[0].average=(float)a[0].turn/a[0].time;
     for(i=1;i<n;i++)//执行
     {
      if(a[i].arrivetime<a[i-1].finish)
      {
       a[i].finish=a[i-1].finish+a[i].freetime;
       a[i].turn=a[i].finish-a[i].arrivetime;
      }
      else
      {
       a[i].finish=a[i].arrivetime+a[i].freetime;
       a[i].turn=a[i].time;
      }
      
      a[i].average=(float)a[i].turn/a[i].time;
      wordtime=a[i].finish;
     }
     
    }

    void main()
    {
     int i,j,n,sum=0;
     double average=0,turn=0;       
     printf("请输入进程个数: ");
     scanf("%d",&n);
     getchar();
     for(i=0;i<n;i++)
     {
     
      printf("第%d个进程到达时间:",i+1);
      scanf("%d",&a[i].arrivetime);
      printf("第%d个的需要时间 :",i+1);
      scanf("%d",&a[i].time);
      printf(" ");

      a[i].freetime=a[i].time;//剩余时间赋值
     
     
     }//输入数据
     
     for(i=0;i<n;i++)
     {
      for(j=i+1;j<n;j++)
      {
       if(a[j].arrivetime<a[i].arrivetime)
       {
        b=a[i];
        a[i]=a[j];
        a[j]=b;
       }
       else if(a[j].arrivetime==a[i].arrivetime)
       {
        if(a[i].time>a[j].time)
        {
         b=a[i];
         a[i]=a[j];
         a[j]=b;
        }
       }
      }
     }//排序
     fcfs(i,j,n);
     
     printf("完成时间 周转时间 带权周转 ");
     for(i=0;i<n;i++)
      printf("%d %d %.2f ",a[i].finish,a[i].turn,a[i].average);
     
        for(i=0;i<n;i++)
     {
      turn=turn+(float)a[i].turn;
      average=average+(float)a[i].turn/a[i].time;
     }
     turn=turn/n;
     average=average/n;
     printf("平均周转     平均带权周转 ");
        printf("%.2f %.2f ",turn,average);
     
    }

  • 相关阅读:
    python学习第十五天
    python学习第十三、十四天
    python学习第十二天
    python学习第j十一天
    python学习第十天
    ViewController push的自定义动画
    iOS 判断设备是否越狱
    iOS
    OBJC字面量
    ios8 share Extension 分享扩展
  • 原文地址:https://www.cnblogs.com/guo2016/p/5583551.html
Copyright © 2011-2022 走看看