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

📄 yinhangjia.cpp

📁 银行家算法 适合操作系统课设 自己编的
💻 CPP
字号:
// 银行家.cpp : Defines the entry point for the console application.
//


#include<iostream>
#include "string.h" 
#include <stdio.h> 
#include <stdlib.h> 
int m,n,a=4,b,i;
int k[3]={2,6,3};
int j[3]={4,5,2};
int finish[3];
int p[3];
int q[3];
void main() 
{   
	printf("系统共有的资源数为:15\n"); 
	printf("系统已用的资源数为:\n"); 
	printf("进程1:2,进程2:6,进程3:3.\n"); 
	printf("系统需用的资源数为:\n"); 
    printf("进程1:4,进程2:5,进程3:2.\n"); 
    printf("系统可用的资源数为:4.\n"); 
loop:printf("请输入需申请资源的进程号(从1到3)\n");
	scanf("%d",&n);
	n=n-1;
	printf("进程%d申请的资源数\n",n+1); 
    scanf("%d",&m);
	
	if (m<=j[n]||m<=a)
	{ 
        j[n]=j[n]-m;
        k[n]=k[n]+m;
		a=a-m;
		b=a;
        p[n]=j[n];
        q[n]=k[n];
		int finish[3]={0,0,0};
	for (i=0;i<=2;)
		{
			
	      if (finish[n]==0&&p[n]<=b&&p[n]>=0)
		  {
			   b=b+q[n];
			   finish[n]=1;
		       i=0;
			 
		 }
		   else  
			     i=i+1;
		   
		}

	    if (finish[0]==1||finish[1]==1||finish[2]==1)
		{
			printf("申请成功\n");
			goto loop;
		}
		else 
		{
			printf("申请失败\n");
			goto loop2;
		}
		

	}  
	else 
	{
		printf("申请失败\n");
		goto loop;
	}

loop2:j[n]=j[n]+m;
        k[n]=k[n]-m;
		a=a+m;
		goto loop;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -