一个关于C++的程序(说有三个错误)

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:43:07
名位C++高手帮帮我吧,这个程序是关于银行家算法的.我的代码如下:
#include <iostream.h>
#define max 12 //资源总量
#define jcs 3 //进程数
int jcxl[jcs];

void orsafe(int zy[3][4],int l)
{
int i=0;int j=0;int min;
for(int k=0;k<jcs-1;k++)
{
if(zy[k][2]>=zy[k+1][2])
min=zy[k+1][2];
else min=zy[k][2];
}
cout<<"所有进程中还需要量的最小值为:"<<min<<endl;
if (min>l)
cout<<"初始状态不安全!"<<endl;
else
{
if (zy[k][2]<=l)
for(;i<jcs;i++)
{
if(zy[i][2]<=l && zy[i][3]==0)
{
cout<<"程序"<<i+1<<"运行!"<<endl;
jcxl[j]=i+1; //记录进程序列
cout<<"程序"<<i+1<<"结束并收回其资源!"<<endl;
l=l+zy[i][0];//收回资源
zy[i][3]=1; //进程标识为1,表示已经分配了资源
j++;
}
if(j==3)

VC++7.1下编译通过,你改改头文件就可以在6.0下编译了
你写程序太乱了。中间有漏大括号,二维数组传递你也没弄明白,还有一些小错误。

// test080610.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

const int maxzy=12; //资源总量
const int jcs=3; //进程数
int jcxl[jcs];

void orsafe(int zy[][4],int l)
{
int i=0;int j=0;int min;
for(int k=0;k<jcs-1;k++)
{
if(zy[k][2]>=zy[k+1][2])
min=zy[k+1][2];
else min=zy[k][2];
}
cout<<"所有进程中还需要量的最小值为:"<<min<<endl;
if (min>l)
cout<<"初始状态不安全!"<<endl;
else
{
if (zy[k][2]<=l)
for(;i<jcs;i++)
{
if(zy[i][2]<=l && zy[i][3]==0)
{
cout<<"程序"<<i+1<<"运行!"<<endl;
jcxl[j]=i+1; //记录进程序列
cout<<"程序"<<i+1<<&qu