码迷,mamicode.com
首页 > 其他好文 > 详细

FCFS 先来先服务

时间:2016-04-14 20:55:22      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

/*
先来先服务FCFS

要求:
1>用结构体定义程序:程序号,优先数(到达时间),CPU运算所需时间

2>输入进程序列

3>按优先数高低排序输出
*/
#include<stdio.h>
#include<string.h>
#define N 100
typedef struct Time
{
int reachTime; //优先数(程序到达时间)
int runningTime; //CPU运算时间
}Time;

typedef struct Information
{
long ID; //程序号

Time pay;
}INF;

int n;
void readpay(INF p[]);
void DeSortbytheFirst(INF p[]);

void main() //主函数
{
INF p[N];
struct Time;
int sum=0;
int i;
// long number;
printf("请输入程序个数:(<100个)");
scanf("%d",&n);
readpay(p);
for(i=0;i<n;i++)
{
sum=sum+p[i].pay.reachTime+p[i].pay.runningTime;
}
printf("\n\n\t\t\t#####总周转时间为:%d毫秒#####\n\t\n",sum);
printf("\t\t\t#####按优先级高低排序输出#####\n\n");
DeSortbytheFirst(p);


}

void readpay(INF p[]) //1.输入程序资料
{
int i;
for(i=0;i<n;i++)
{
printf("\n\t请输入第%d个程序号:",i+1);
scanf("%ld",&p[i].ID);
printf("请输入第%d个程序的到达时间:",i+1);
scanf("\t%d",&p[i].pay.reachTime);
printf("请输入第%d个程序的CPU运算时间:",i+1);
scanf("\t%d",&p[i].pay.runningTime);

printf("\t\n%10ld %d\t%d\t\n 周转时间:%d\n",p[i].ID,p[i].pay.reachTime,p[i].pay.runningTime,p[i].pay.reachTime+p[i].pay.runningTime);

}
}

void DeSortbytheFirst(INF p[]) //2.按优先级高低排序输出
{
int i,j,k;
int All;
int a1,a2;
INF temp;

for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<=n;j++)
{
a1=p[i].pay.reachTime+p[i].pay.runningTime;
a2=p[j].pay.reachTime+p[j].pay.runningTime;
if(a1<a2)
{
temp=p[j];
p[j]=p[i];
p[i]=temp;
}
}
printf("\n\t按优先级高低排序为:\n");
printf("\n\t编号\t程序号\t到达时间\t运转时间\t\n");
for(k=0;k<n;k++)
{

All=p[k].pay.reachTime+p[k].pay.runningTime;
printf("\t%d%10ld\t%d\t\t%d\t\n",k+1,p[k].ID,p[k].pay.reachTime,All);
}

}


}

 

 

#####################################################

运行结果:

技术分享技术分享

FCFS 先来先服务

标签:

原文地址:http://www.cnblogs.com/maykok/p/5392542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!