求3个处理机同时工作完成7个任务所用时间

本文介绍了一个使用C语言实现的任务调度程序。该程序通过排序任务并分配给不同的处理机来寻找最短完成时间。首先对任务按耗时进行排序,然后逐一分配给空闲时间最短的处理机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c语言程序:

#include <stdio.h>


int main()
{
int machine[3]={0,0,0},task[7]={2,14,4,16,6,5,3};


int i,j,k,n,m,p;


for(i=0;i<6;i++)
{
for(j=i+1;j<7;j++)
{
if(task[i]<task[j])
{
k=task[i];
task[i]=task[j];
task[j]=k;
}
}
}


for(m=1;m<8;m++)
{
printf("第%d个任务的时间为:%d\n",m,task[m-1]);
}


printf("\n");




for(n=0;n<7;n++)
{
if(machine[0]<=machine[1]&&machine[0]<=machine[2])
  machine[0]+=task[n];
else if(machine[1]<=machine[2]&&machine[1]<=machine[0])
machine[1]+=task[n];
else
machine[2]+=task[n];
}


for(p=0;p<3;p++)
{
printf("第%d个处理机所用时间为:%d\n",p,task[p]);
}
printf("\n");
    
if(machine[0]>=machine[1]&&machine[0]>=machine[2])
printf("三个处理机完成七项工作话费的最短时长为:%d个时间单位\n",machine[0]);
else if(machine[1]>=machine[2]&&machine[1]>=machine[0])
   printf("三个处理机完成七项工作话费的最短时长为:%d个时间单位\n",machine[1]);
else
    printf("三个处理机完成七项工作话费的最短时长为:%d\n个时间单位",machine[2]);
printf("\n");
}


执行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值