7-1 作业调度算法--先来先服务
生活随笔
收集整理的這篇文章主要介紹了
7-1 作业调度算法--先来先服务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
7-1 作業調度算法–先來先服務
輸入N(N>0)個作業,輸入每個作業的名字,到達時間,服務時間,按照先來先服務算法,計算每個作業的完成時間,周轉時間,帶權周轉時間(保留2位小數)。
輸入格式:
第一行輸入作業數目,第二行輸入作業的名字,第三行輸入到達時間,第四行輸入服務時間。
輸出格式:
按照到達時間從小到大排序,第一行輸出作業的名字,第二行輸出到達時間,第三行輸出服務時間,第四行輸出完成時間,第五行輸出完成時間,第六行輸出帶權周轉時間。
輸入樣例:
在這里給出一組輸入。例如:
輸出樣例:
在這里給出相應的輸出。例如:
代碼
#include<stdio.h> #include<math.h> #include<stdlib.h> #include<string.h>struct Yudi{char Xiong[10]; int AT; int ST; int FT; int RT; double DRT; }; int main(void){int N; scanf("%d",&N);struct Yudi s[N];for(int i=0; i<N; i++) scanf("%s",&s[i].Xiong);for(int i=0; i<N; i++) scanf("%d",&s[i].AT); for(int i=0; i<N; i++) scanf("%d",&s[i].ST);for(int i=0; i<N-1; i++) {struct Yudi temp;for(int j=i+1; j<N; j++){if(s[i].AT>s[j].AT){temp=s[i];s[i]=s[j];s[j]=temp; }}}for(int i=0; i<N; i++) {if(i==0)s[0].FT=s[0].AT+s[0].ST;else{if(s[i].AT>s[i-1].FT)s[i].FT=s[i].AT+s[i].ST;elses[i].FT=s[i-1].FT+s[i].ST;} } for(int i=0; i<N; i++) s[i].RT=s[i].FT-s[i].AT;for(int i=0; i<N; i++) s[i].DRT=1.0*s[i].RT/s[i].ST;printf("作 業 名:"); for(int i=0; i<N; i++){if(i==N-1){printf("%s",s[N-1].Xiong);printf("\n");}elseprintf("%s ",s[i].Xiong);}printf("到達時間:"); for(int i=0; i<N; i++){if(i==N-1){printf("%d",s[N-1].AT);printf("\n");}elseprintf("%d ",s[i].AT);}printf("服務時間:");for(int i=0; i<N; i++){if(i==N-1){printf("%d",s[N-1].ST);printf("\n");}elseprintf("%d ",s[i].ST);}printf("完成時間:");for(int i=0; i<N; i++){if(i==N-1){printf("%d",s[N-1].FT);printf("\n");}elseprintf("%d ",s[i].FT);}printf("周轉時間:");for(int i=0; i<N; i++){if(i==N-1){printf("%d",s[N-1].RT);printf("\n");}elseprintf("%d ",s[i].RT);}printf("帶權周轉時間:");for(int i=0; i<N; i++){if(i==N-1){printf("%.2f",s[N-1].DRT);printf("\n");}elseprintf("%.2f ",s[i].DRT);}return 0; }總結
以上是生活随笔為你收集整理的7-1 作业调度算法--先来先服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件工程方法论为我们经软件开发有多大用处
- 下一篇: 为什么软件开发方法论让你觉得糟糕?Why