FCFS调度算法(FCFS,先来先服务,FIst Come Fiest Serve) 周转时间=作业完成时间-作业提交时间 平均周转时间=各作业周转时间之和 / 作业数 带权周转时间=作业周转时间 / 作业实际运行的时间=(作业完成时间-作业提交时间)/ 作业实际运行的时间 代码 #include<stdio.h> #include<stdlib.h> struct Process{ int at; //到达时间 需要输入的 int rt; //运行时间 int et;//结束时间 int ct;//周转时间 结束时间-到达时间 } p[100]; int main(){ int num; int i,j; double totaltime=0.0; //总周转时间 double average=0.0; //平均周转时间 printf("请输入作业的个数\n"); scanf("%d",&num); printf("请输入进程的到达时间和运行时间\n"); for(i=0;i<num;i++){ printf("第%d个作业的到达时间 运行时间\n",i+1); scanf("%d%d",&(p[i].at),&(p[i].rt)); } //计算结束时间和周转时间 for(i=0;i<num;i++){ //结束时间 if(i==0) p[i].et=p[i].rt+p[i].at; //结束时间为作业执行完毕的时间,当为第一个作业时,作业的结束时间为进入的时间加上运行的时间 else p[i].et=p[i-1].et+p[i].rt; //结束时间为上一作业的结束时间+本作业的运行时间 //周转时间 p[i].ct=p[i].et-p[i].at; totaltime+=p[i].ct; printf("第%d作业的到达时间:%d,结束时间:%d,周转时间:%d\n",i+1,p[i].at,p[i].et,p[i].ct); } average=totaltime/num; printf("平均周转时间为:%.2f\n",average); return 0; }