1题目描述:要求输入3个进程的信息按照最高响应比优先的调度算法计算并输出每个进程的周转时间。若两个进程的响应比相同则优先选择先进入的进程。若两个进程的响应比相同而且进入时刻也相同则按照输入的顺序执行如:P4和P6的响应比相同且进入时刻也相同如P4先输入则选择P4先执行2输入格式:程序要求输入3行以回车符号作为分隔每行有3个数据以空格作为分隔。首先输入一个字符串长度小于等于10为进程名第2个数据类型
#include<stdio.h> #include<string.h>//需要使用字符串函数strlen struct process{//定义进程结构体 char name[11]; int arriveTime; int serveTime; int overTime;//结束时间 int responseRatio;//响应比 }p[3]; int main(){ for(int i=0;i<3;i++){ scanf("%s %d %d",p[i].name,&p[i].arriveTime,&p[i].serveTime); p[i].overTime=p[i].arriveTime+p[i].serveTime;//计算结束时间 p[i].responseRatio=1+((float)(p[i].overTime-p[i].arriveTime)/p[i].serveTime);//计算响应比 } for(int i=0;i<2;i++){//按照响应比排序 for(int j=i+1;j<3;j++){ if(p[i].responseRatio<p[j].responseRatio||((p[i].responseRatio==p[j].responseRatio)&&p[i].arriveTime<p[j].arriveTime)){ struct process temp=p[i]; p[i]=p[j]; p[j]=temp; } } } for(int i=0;i<3;i++){ printf("%d ",p[i].overTime-p[i].arriveTime);//输出周转时间 } return 0;
原文地址: http://www.cveoy.top/t/topic/fc1j 著作权归作者所有。请勿转载和采集!