C语言多级调度问题

C语言多级调度问题,代码简单可以直接运行
#include “stdio.h”
#include “math.h”
int s[20],m[10][10];
int n,o;
void get()//定义输入函数
{
printf(“请输入机器个数和作业个数:”);
scanf("%d %d",&o,&n);
for(int i=0;i<n;i++)
scanf("%d",&s[i]);
printf(“输入机器个数和作业个数:%d %d\n”,o,n);
for(int i=0;i<n;i++)
printf("%d “,s[i]);
printf(”\n");
}
void sort()//排序函数采用基本冒泡排序
{
int temp;
for(int i=0;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(s[j]<s[j+1])
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}
}
int min(int a,int b,int c)//比较函数返回最小值
{
return (a < b) ? (a < c ? a: c) : (b < c ? b : c);
}
int max(int a,int b,int c)//比较函数返回最大值
{
return (a > b) ? (a > c ? a: c) : (b > c ? b : c);
}
int process()
{
int i1=0,i2=0,i3=0;//定义每条机器的总作业数
int j1=0,j2=0,j3=0,j=0;//定义每条机器的状态量
int temp1=0,temp2=0,temp3=0;//定义每条机器的总作业时间
for(int i=0;i<n;i++)
{
if(j10)
{
m[0][i1]=s[i];
i1++;
j1=1;
}
else if(j2
0)
{
m[1][i2]=s[i];
i2++;
j2=1;
}
else if(j30)
{
m[2][i3]=s[i];
i3++;
j3=1;
}
if(i>=2)
{
for(int i=0;i<=i1;i++)
temp1+=m[0][i];
for(int i=0;i<=i2;i++)
temp2+=m[1][i];
for(int i=0;i<=i3;i++)
temp3+=m[2][i];
j=min(temp1,temp2,temp3);
if(j
temp1)
j1=0;
else if(jtemp2)
j2=0;
else if(j
temp3)
j3=0;
if(i<6)
{
temp1=0;temp2=0;temp3=0;}
}
}
j=max(temp1,temp2,temp3);
}
int main(){
get();
sort();
for(int i=0;i<n;i++)
printf("%d “,s[i]);
printf(”\n");
int j=process();
printf(“最短作业时间为:%d”,j);
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值