📄 banker.c
字号:
#define n 5
#define m 3
int safe(int * Work);
{
int Finish[]={0,0,0,0,0};
int sum=0;
int count=0;
int i,j;
while(sum!=n)
{
for(i=0;i<=n-1;i++)
{
for(j=0;j<=m-1;j++)
if(Finish[i]==0&&Need[i][j]<=Available[j])
count++;
if(count==m)
{
for(j=0;j<=m-1;j++)
Available[j]=Available[j]+Allocation[i][j];
Work[i][j]=Available[j];
Finish[i]=1;
}
}
sum++;
}
if(sum==n) return 1;
else return 0;
}
main()
{
int Allocation[n][m]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};
int Need[n][m]={{7,4,3},{1,2,2},{6,0,0},{0,1,1},{4,3,1}};
int Available[m]={3,3,2};
int Request[m];
int Work[n][m];
int t,k;
for(t=0;t<=n-1;t++)
for(k=0;k<=m-1;k++)
{
if(t==0)
{
Work[t][k]=Available[k];
}
else
Work[t][k]=0;
}
//if(safe(Work,Need,Allocation,Available))
/*{
scanf("%d",&i);
while(i!=(n+1))
{
for(int j=0;j<=m-1;j++)
scanf("%d",&Request[j]);
if(Request[j]<=Need[i][j]&&Request[j]<=Available[j])
{
Give(Work,Need,Allocation,Available);
if(System_safe(Work,Need,Allocation,Available))
printf("分配成功");
else
{
printf("分配不成功");
Last(Work,Need,Allocation,Available);
}
}
else printf("所请求的资源不合法");
scanf("%d",&i);*/
//printf("");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -