#include<stdio.h>
#include <stdlib.h>
/*#define n 5//进程总数
#define m 3//资源种类数
*/
struct claim
{
int user;//存放申请的进程
int num[3];//存放申请改进程各类资源的数量
}claims;
int alloc[5][3]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};
int need[5][3]={{7,4,3},{1,2,2},{6,0,0},{0,1,1},{4,3,1}};
int avail[3]={3,3,2};
output(int i,int work[],int alloc[],int need[],int finish)
{
printf("****************************************************");
printf(" 进程 need alloc work finish ");
printf("%3d* %3d %3d %3d * %3d %3d %3d * %3d %3d %3d *%3d
",i,need[0],need[1],need[2],alloc[0],alloc[1],alloc[2],work[0],work[1]
,work[2],finish);
printf("***********************************************");
}
void input()
{
printf("请输入你要请求资源的进程(0~4):");
scanf("%d",&claims.user);
printf("请输入请求进程第一项资源的数量:");
scanf("%d",&claims.num[0]);
printf("请输入请求进程第一项资源的数量:");
scanf("%d",&claims.num[1]);
printf("请输入请求进程第一项资源的数量:");
scanf("%d",&claims.num[2]);
}
int judge(int finish[5],int need[5][3],int work[3])
//改函数用来判断当前 work[]数组中的各类资源数量能否满足系统继续运行
//如果满足则返回 0,不满足返回 1
{int i;
for(i=0;i<5;i++)