📄 yinhangjia.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 + -