请问下大家谁能帮我解决下c语言银行家算法的程序问题

要求是用C语言的,c++等别的不行,要求有数据流程图,把程序编好,其他可有可无,程序要求不多100多行就行,主要就是数据流程图啊,可是现在连程序都还不对啊,画不出来啊,请教下大家谁能帮我解决下,谢谢啦

以下是找的一个c语言编写的银行家程序但是我机器上不能运行,各位帮看看程序对么?是什么问题啊

   #i nclude <stdio.h>
                        void main()
                        {
                         int
                        claim[5][3]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};
                         int
                        allocation[5][3]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};
                         int i,j,k,l=0,count=0;
                         int
                        need[5][3]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}};
                         int result[5]={-1,-1,-1,-1,-1};
                         int work[3]={3,3,2};
                         printf("all source:/n     A  B  C/n     10 5  7/n");
                         printf("available:/n     A  B  C/n     3  3  2/n");
                         printf("every max source:/n     A  B  C/n");
                         for(i=0;i<5;i++)
                         {
                          printf("P%d: ",i);
                          for(j=0;j<3;j++)
                          {
                           printf(" %d ",claim[i][j]);
                           need[i][j]=claim[i][j]-allocation[i][j];
                          }
                          printf("/n");
                         }
                         printf("allocation:/n     A  B  C/n");
                         for(i=0;i<5;i++)
                         {
                          printf("P%d: ",i);
                          for(j=0;j<3;j++)
                           printf(" %d ",allocation[i][j]);
                          printf("/n");
                         }
                         printf("every need:/n     A  B  C/n");
                         for(i=0;i<5;i++)
                         {
                          printf("P%d: ",i);
                          for(j=0;j<3;j++)
                           printf(" %d ",need[i][j]);
                          printf("/n");
                         }

                          for(l=0;l<5;l++)
                          for(k=0;k<5;k++)
                           {
                              
                        if(result[k]==-1&&need[k][0]<=work[0]&&need[k][1]<=work[1]&&need[k][2]<=work[2])
                            {
                             work[0]=work[0]+allocation[k][0];
                                                               
                        work[1]=work[1]+allocation[k][1];
                                                               
                        work[2]=work[2]+allocation[k][2];
                             result[k]=l;count++;
                             printf("P%d->",k);
                            }
                           }
                         if(count==5)
                          printf("/nit is safe!/n");
                         else
                          printf("/nit is danger/n");
                        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值