#include#include
struct process{?char pname;?float arrivetime;?float servetime;?float finishtime;?float roundtime;?float droundtime;?float waittime;?float yxq;?? //优先权};struct process pro[100];
//声明函数void fcfs(struct process pro[],int n);void sjf(struct process pro[],int n);void gxyb(struct process pro[],int n);struct process *sortarrivetime(struct process pro[],int n);void print(struct process pro[],int n);
?
//主函数void main(){?int n,i;?printf("请输入有几个进程:\n");?scanf("%d",&n);?for(i=0;i
?fcfs(pro,n);?sjf(pro,n);?gxyb(pro,n);}
//按到达时间进行冒泡法排序struct process *sortarrivetime(struct process pro[],int n){?int i,j;?struct process itemp;?int flag;?for(i=1;ipro[j+1].arrivetime)???{????itemp=pro[j];????pro[j]=pro[j+1];????pro[j+1]=itemp;????flag=1;?? //交换标志???}??}??if(flag==0)?? //如果一趟排序中没发生任何交换,则排序结束???break;?}?return pro;}
//算平均数+输出函数void print(struct process pro[],int n){?int i;?float Sumroundtime=0,Sumdroundtime=0;?float averoundtime,avedroundtime;??for(i=0;i
//先来先服务算法void fcfs(struct process pro[],int n){?int i;?pro=sortarrivetime(pro,n);?pro[0].finishtime=pro[0].arrivetime+pro[0].servetime;?pro[0].roundtime=pro[0].finishtime-pro[0].arrivetime;?pro[0].droundtime=pro[0].roundtim