用c语言编写银行家算法,C语言实现银行家算法

用c语言编写银行家算法,C语言实现银行家算法《C语言实现银行家算法》由会员分享,可在线阅读,更多相关《C语言实现银行家算法(8页珍藏版)》请在人人文库网上搜索。1、C语言实现银行家算法(源码、运行结果)一、源码/*银行家算法10-22*/#include/函数声明voidinit(int*pcount,int*scount,intAllocation1010,intNeed1010,intAvailable10);vo…

大家好,又见面了,我是你们的朋友全栈君。

《C语言实现银行家算法》由会员分享,可在线阅读,更多相关《C语言实现银行家算法(8页珍藏版)》请在人人文库网上搜索。

1、C语言实现银行家算法(源码、运行结果)一、 源码/* 银行家算法 10-22*/#include/函数声明void init(int * pcount,int * scount,int Allocation1010,int Need1010,int Available10);void print(int pcount,int scount,int Allocation1010,int Need1010,int Available10);int requs(int scount,int * Requestnumber,int Request10,int Allocation1010,int Ne。

2、ed1010,int Available10);void print2(int isreque,int number);void yhj(int number,int pcount,int scount,int Allocation1010,int Need1010,int Available10);int main()int conti=1; /0退出int pcount=0,scount=0; /进程数 和 资源数int Allocation1010;int Need1010;int Available10;/分配矩阵Allocation 需求矩阵Need 可利用资源向量Available。

3、 int number=0,Request10=0;/用于记录进程编号 用于记录请求向量while(true)init(&pcount,&scount,Allocation,Need,Available); /调用初始化函数print(pcount,scount,Allocation,Need,Available); /调用打印函数int isreque = requs(scount,&number,Request,Allocation,Need,Available); /调用是否请求函数if(isreque=1)printf(n把资源分配给进程P%d后,资源分配情况如下:n,number);。

4、print(pcount,scount,Allocation,Need,Available); /调用打印函数yhj(number,pcount,scount,Allocation,Need,Available); /调用银行家算法函数elseif(isreque=0)yhj(number,pcount,scount,Allocation,Need,Available); /调用银行家算法函数elseprint2(isreque,number);printf(是否继续?0退出,1继续:);scanf(%d,&conti);printf(n);if(conti = 0)break;printf(。

5、n);return 0;/初始化函数: 提示用户输入 进程数,资源数,Allocation矩阵等void init(int * pcount,int * scount,int Allocation1010,int Need1010,int Available10)int p,s;int i,j;printf(进程数:);scanf(%d,&p);*pcount = p;printf(资源数:);scanf(%d,&s);*scount = s;printf(Allocationn);for(i=0;i=0 & numberNeednumberj)for(j=0;jAvailablej)retu。

6、rn 4;return 2;/判断请求向量是否合理:是否小于可利用资源向量bool isrun2 = true;for(j=0;jAvailablej)return 3;/请求向量合理则分配资源/分配资源给请求的进程for(j=0;jWorkj)iscan = false; /printf(进程P%d不能运行n,i);break;if(iscan = true)Finishi = 1;printf(P%d ,i);/释放该进程前,可利用资源数Workfor(j=0;jscount;j+)printf(%3d,Workj);printf( );/该进程需求变量Needfor(j=0;jscoun。

7、t;j+)printf(%3d,Needij);printf( );/该进程占用资源数Allocationfor(j=0;jscount;j+)printf(%3d,Allocationij);printf( );for(j=0;jscount;j+)/进程运行完成,工作向量资源数增加Workj += Allocationij;printf( );/记录该进程至安全序列/printf(k=%d,i=%dn,k,i);xk = i; k+;/释放该进程后,可利用资源数Work+Allocationfor(j=0;jscount;j+)printf(%3d,Workj);printf(t 1);p。

8、rintf(n);/如果可用资源不能满足任何进程的需要 跳出循环/例如n=1 done1则跳出 done = 0;for(i=0;ipcount;i+)if(Finishi=1)done+;if(donen)printf(系统不安全,P%d等待nn,number);break;else if(done=pcount)printf(系统安全,存在着一个安全序列为:);for(i=0;ipcount;i+)if(i=pcount-1)printf(P%d,xi);elseprintf(P%d,xi);printf(nn);break;n+;二、 运行结果注:安全序列并不一定唯一。该算法只能输出其中一个安全序列。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163199.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月22日 上午10:00
下一篇 2022年7月22日 上午10:00


相关推荐

  • java之Scanner详解「建议收藏」

    java之Scanner详解「建议收藏」1.包:importjava.util.Scanner2.使用方法:Scannerreader=newScanner(System.in);  然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:   nextByte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),next

    2022年7月20日
    15
  • python差异性分析_能用SPSS进行差异显著性分析吗

    python差异性分析_能用SPSS进行差异显著性分析吗请问能用 SPSS 进行差异显著性分析吗 具体用哪个命令啊 如果不行 还有其他办法进行差异分析吗 比如说我有几组数据 一组是空白对照 另外几组是不同浓度的处理组 我想对各个处理组与空白组进行差异分析 用哪个命令 如何分析最好呢 可以 根据你要比较的对象 选用不同的方法 analyze comparemeans 或者 analyze generallinea 有不同的子菜单 用哪一个 需要

    2026年3月18日
    2
  • SIFT算法详解

    SIFT算法详解尺度不变特征变换匹配算法详解 Scale nbsp Invariant nbsp Feature nbsp Transform SIFT Just nbsp For nbsp Funzdd nbsp 对于初学者 从 David nbsp G Lowe 的论文到实现 有许多鸿沟 本文帮你跨越 1 SIFT 综述尺度不变特征转换 Scale invariant nbsp feature nbsp transform 或 SIFT

    2026年3月26日
    1
  • Activity具体解释(生命周期、以各种方式启动Activity、状态保存,全然退出等)

    Activity具体解释(生命周期、以各种方式启动Activity、状态保存,全然退出等)

    2021年12月1日
    66
  • Python常用数据结构之collections模块建议收藏

    collectionscollections是日常工作中的重点、高频模块,常用类型有:计数器(Counter)双向队列(deque)默认字典(defaultdict)有序字典(Ordered

    2021年12月18日
    48
  • 【模式识别】感知器 Perceptron

    【模式识别】感知器 Perceptron基本概念线性可分 在特征空间中可以用一个线性分界面正确无误地分开两类样本 采用增广样本向量 即存在合适的增广权向量 a 使得 则称样本是线性可分的 如下图中左图线性可分 右图不可分 所有满足条件的权向量称为解向量 权值空间中所有解向量组成的区域称为解区 通常对解区限制 引入余量 b 要求解向量满足 使解更可靠 推广性更强 防止优化算法收敛到解区的边界 感

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号