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(j20)
{
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(jtemp1)
j1=0;
else if(jtemp2)
j2=0;
else if(jtemp3)
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;
}
C语言多级调度问题
最新推荐文章于 2025-03-17 16:50:21 发布