实验二,04彭得源
#include <stdio.h> #define n 20 struct fcfs { int id; //进程名 int gt; //进程到达时间 int runt; //进程运行时间 int ft; //进程完成时间 int rt; //进程周转时间 }f[n]; void main() { int amount,i,j,l,k; struct fcfs f[n]; printf("请输入进程个数:\n"); scanf("%d",&amount); for(i=0;i<amount;i++) { printf("请输入进程名,进程到达时间,进程运行时间:\n"); scanf("%d",&f[i].id); scanf("%d",&f[i].gt); scanf("%d",&f[i].runt); } for(i=0;i<amount;i++) //按进程到达时间的先后排序 { //如果两个进程同时到达,按在屏幕先输入的先运行 for(j=0;j<amount-i-1;j++) { if(f[j].gt>f[j+1].gt) { l=f[j].gt; f[j].gt=f[j+1].gt; f[j+1].gt=l; k=f[j].id; f[j].id=f[j+1].id; f[j+1].id=k; } } } for(i=0;i<amount;i++) { f[i].ft=f[i].gt+f[i].runt; f[i].rt=f[i].ft-f[i].gt; printf("进程%d从%d开始,在%d之前结束\n",f[i].id,f[i].gt,f[i].ft); f[i+1].gt=f[i].ft; printf("周转时间为%d\n",f[i].rt); } }
总结:这次的实验,其实调度什么的,都不太懂是什么意思,上网参考了之后觉得还是好难,不过跟之前学c语言的差不多,总体理解起来还不是很难,但是还是有很多不足,要好好继续学习。