先来先服务算法(C语言版)

   更新日期:2024.04.19
#include<stdio.h>
#include<stdlib.h>

typedef struct process_FCFS{
float arrivetime;//到达时间
float servetime;//服务时间
float finishtime;//完成时间
float roundtime;//周转时间
float daiquantime;//带权周转时间
struct process_FCFS *link;//结构体指针
}FCFS;
FCFS *p,*q,*head=NULL;
struct process_FCFS a[100];
//按到达时间进行冒泡排序

struct process_FCFS *sortarrivetime(struct process_FCFS a[],int n)
{
int i,j;
struct process_FCFS t;
int flag;
for(i=1;i<n;i++)
{
flag=0;
for(j=0;j<n-i;j++)
{
if(a[j].arrivetime>a[j+1].arrivetime)
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
flag=1;//交换
}
}
if(flag==0)//如果一趟排序中没发生任何交换,则排序结束
break;
}
return a;
}

//先来先服务算法

void print(struct process_FCFS a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("到达时间:%f",a[i].arrivetime);
printf("服务时间:%f",a[i].servetime);

printf("完成时间:%f",a[i].finishtime);
printf("周转时间:%f",a[i].roundtime);
printf("带权周转时间:%f",a[i].daiquantime);
printf("\n");
}
}

void Fcfs(struct process_FCFS a[],int n)
{
int i;
a[0].finishtime=a[0].arrivetime+a[0].servetime;
a[0].roundtime=a[0].finishtime+a[0].arrivetime;
a[0].daiquantime=a[0].roundtime/a[0].servetime;
for(i=0;i<n;i++)
{
if(a[i].arrivetime<a[i-1].finishtime)
{
a[i].finishtime=a[i-1].finishtime+a[i].servetime;
a[i].roundtime=a[i].finishtime-a[i].arrivetime;
a[i].daiquantime=a[i].roundtime/a[i].servetime;
}
else
{
a[i].finishtime=a[i].arrivetime+a[i].servetime;
a[i].roundtime=a[i].finishtime-a[i].arrivetime;
a[i].daiquantime=a[i].roundtime/a[i].servetime;
}
}
printf("先来先服务\n");
print(a,n);
}
//主函数
void main()
{
int n,i;
printf("请输入有几个进程\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("arrivetime");
scanf("%f",&a[i].arrivetime);
printf("servetime");
scanf("%f",&a[i].servetime);
}
Fcfs(a,n);
}

  • 18489743282 :请问谁有C语言的电梯模拟算法?
    国峰贪3750 :答:int service; elevator(); system("color 3f"); printf("EVA 电梯竭诚为您服务,祝乘坐愉快\n"); printf("请选择服务策略(1为先来先服务,2为顺便服务):\n"); scanf("%d",&service); if(service==1) { DWORD ...
  • 18489743282 :有c语言模拟调度算法吗?
    国峰贪3750 :答:/*本c程序为按优先数的进程调度*/ include<stdio.h> include<string.h> include<malloc.h> define NULL 0 define LEN sizeof(struct pcb)struct pcb { int pid;struct pcb *next;int time;int priority;char status...
  • 18489743282 :c语言能用来做什么?
    国峰贪3750 :答:c语言学会了能干的事情有:1、做嵌入式开发;2、写漂亮的界面;3、做服务器开发;4、可以写游戏;5、可以写驱动程序;6、可以写外挂;7、可以做视频图片流媒体处理;8、可做网页和爬虫相关的编程;9、可以进行黑客编程...
  • 18489743282 :C语言分布式系统中的进程标识
    国峰贪3750 :答:因为一个程序重启之后的新进程和它的“前世进程”的状态通常不一样,凡是与它打交道的其他进程(s)最好能通过它的进程标识符变更来很容易地判断该程序已经重启,而采取必要的救灾措施,防止搭错话。本文先假定每个服务端程序的端口是静态...
  • 18489743282 :嵌入式系统设计师考试知识点有哪些?
    国峰贪3750 :答:·任务调度(调度算法的性能指标、可抢占调度、不可抢占调度、先来先服务、短作业优先算法、时间片轮转算法、优先级算法)·实时系统及任务调度(RMS、EDF算法)·任务间通信(共享内存、消息、管道、信号)·同步与互斥(竞争条件、临界区、...
  • 18489743282 :求编程题(看病要排队)的代码,必须用C语言解答,越基础越容易看懂越好,不...
    国峰贪3750 :答:struct BR_ //病人结构体;{ int id; //病人ID;int lv;//病人等级;};int main(){ int n,i,j,yisheng,binglv,brnum = 0;BR_ b2y[3][100] = { };//存放每个医生对应的病人;int bingnum[3] = {}...
  • 18489743282 :c语言如何学习
    国峰贪3750 :答:今天本人就与大家一起谈谈如何学习C语言。学习C语言必须从以下四点入手,也就是说,只要你能掌握这四点的内容,那么基本上就大功告成了。1、多看代码 在有一定基础以后一定要多看别人的代码。 注意代码中的算法和数据...
  • 18489743282 :学会了C语言都可以做什么呢
    国峰贪3750 :答:单片机和嵌入式属于软硬件的结合,有很多使用C语言的地方;开发系统组件或服务,用于支撑上层应用;编写PHP扩展,增强PHP的功能;如果对软件某个模块(例如算法和搜索部分)的效率要求较高,也可以使用C语言来开发。
  • 18489743282 :51单片机的优先级怎么用C语言怎么写?
    国峰贪3750 :答:返回到主程序而用C语言就更简单了,把中断服务程序就是一个函数,不过这个函数加个interrupt的关键字来修饰就是了。而interrupt后面加的是个中断的中断号。由于复位中断的发生是不可逆的,发生后不可能再返回到发生中断之前。...
  • 18489743282 :考网络工程师需要学习哪些方面的知识?或者书籍?
    国峰贪3750 :答:·作业调度算法(先来先服务、短作业优先、高响应比优先) 1.3 系统配置方法 1.3.1 系统配置技术 ·系统构架模式(2层、3层及多层C/S和B/S系统) ·系统配置方法(双机、双工、热备份、容错、紧耦合多处理器、松耦合多处理器) ·处理...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网