求助 下面一个程序运行出错,错在哪里,该怎么改?(100悬赏)
来源:百度知道 编辑:UC知道 时间:2024/05/05 13:11:56
#include"iostream"
using namespace std;
const int defaultsize=30;
const int maxweight=100;
class Graph
{
int maxvertice,numvertice,numedge;
char *vertice;
int **edge;
public:
Graph(int sz=defaultsize);
~Graph();
};
int main()
{
Graph g(10);
return 0;
}
Graph::Graph(int sz)
{
maxvertice=sz;
numvertice=0;
numedge=0;
vertice=new char[maxvertice];
edge=(int **)new int *[maxvertice];
int i,j;
for(i=0;i<maxvertice;i++)
edge[i]=new int [maxvertice];
for(i=0;i<maxvertice;i++)
for(j=0;i<maxvertice;j++)
edge[i][j]=((i==j)?0:maxweight);
}
Graph::~Graph()
{
delete [] vertice;
for(int i=0;i<maxvertice;i++)
delete [] edge[i];
delete [] edge;
}
using namespace std;
const int defaultsize=30;
const int maxweight=100;
class Graph
{
int maxvertice,numvertice,numedge;
char *vertice;
int **edge;
public:
Graph(int sz=defaultsize);
~Graph();
};
int main()
{
Graph g(10);
return 0;
}
Graph::Graph(int sz)
{
maxvertice=sz;
numvertice=0;
numedge=0;
vertice=new char[maxvertice];
edge=(int **)new int *[maxvertice];
int i,j;
for(i=0;i<maxvertice;i++)
edge[i]=new int [maxvertice];
for(i=0;i<maxvertice;i++)
for(j=0;i<maxvertice;j++)
edge[i][j]=((i==j)?0:maxweight);
}
Graph::~Graph()
{
delete [] vertice;
for(int i=0;i<maxvertice;i++)
delete [] edge[i];
delete [] edge;
}
笔误
for(j=0;i<maxvertice;j++)
=》
for(j=0;j<maxvertice;j++)
i=>j
出错信息呢
不好意思没看到你的补充..那里是笔误.i和j错了
for(i=0;i<maxvertice;i++)
->for(j=0;i<maxvertice;j++)
好像是这里又问题。
将for(j=0;i<maxvertice;j++)
改成for(j=0;j<maxvertice;j++) 即可编译通过(.NET2003环境)
#include"iostream"
using namespace std;
const int defaultsize=30;
const int maxweight=100;
class Graph
{
int maxvertice,numvertice,numedge;
char *vertice;
int **edge;
public:
Graph(int sz=defaultsize);
~Graph();
};
int main()
{
Graph g(10);
return 0;
}
Graph::Graph(int sz)
{
maxvertice=sz;
numvertice=0;
numedge=0;
vertice=new char[maxvertice];
edge=(int **)new int *[maxvertice];
int i,j;
for(i=0;i<maxvertice;i++)
edge[i]=new int [maxvertice];
for(i=0