注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

浩瀚星云

上善若水 厚德载物<学习版>

 
 
 

日志

 
 

银行家算法  

2008-02-27 21:53:26|  分类: 计算机操作系统 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#include <math.h>
#include <stdio.h>
typedef struct
{
int state;
 int max[3];
 int alloc[3];
 int need[3];
}Pc;
int whefinish(Pc *p)
{
if((p[0].state&&p[1].state&&p[2].state)==1)
return 1;
else return 0;
}
inpalloc(Pc *P,int *q1,int *q2)
{
int m,n;
for(m=0;m<3;m++)
for(n=0;n<3;n++)
{
scanf("%d",&P[m].alloc[n]);
P[m].need[n]=P[m].max[n]-P[m].alloc[n];
q1[n]=q1[n]-P[m].alloc[n];
 if(P[m].need[n]>P[m].max[n])
 q2[n]=0;
}     }

Process(Pc *p,int *p2)
{int i,j;
for(j=0;j<3;j++)
for(i=0;i<3;i++)
if(p[i].need[0]<=p2[0]&&p[i].need[1]<=p2[1]&&p[i].need[2]<=p2[2])
 {
  p[i].state=1;
   p2[0]+=p[i].alloc[0];
   p2[1]+=p[i].alloc[1];
   p2[2]+=p[i].alloc[2];
  }
  else p[i].state=0;
 }

 main()
{
 int i,j;
 int state[3]={1,1,1},avil[3]={10,10,10};
 Pc Pcb[3];
 for(i=0;i<3;i++)
   for(j=0;j<3;j++)
    {
     scanf("%d",&Pcb[i].max[j]);
     if(Pcb[i].max[j]>10)
      state[i]=0;
    }
 if((state[0]&&state[1]&&state[2])==0)
    printf("error!\n");
 else
 {
  inpalloc(Pcb,avil,state);
  if((state[0]&&state[1]&&state[2])==0)
      printf("Error!\n");
  else
  {
    Process(Pcb,avil);
    if(whefinish(Pcb)==1)
     printf("all Pcbs are finished!\n");
    else printf("Deally-Embrace!\n");
   }
  }
}

  评论这张
 
阅读(52)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017