⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 banker.c

📁 银行家算法的实例
💻 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 + -