GCC不断告诉我:之前预期 ')' ';' 令牌G ++
预期 ')' 前 ';' 令牌,
预期之前 ')' 令牌
预期“基本表达式; '之前')'令牌
而且我找不到问题。这里是有问题的功能:
void prim(){
prepararEstructuras();
int min,k;
for(int i=1;i<nnodos;i++){
min = menorCoste[1];
k = 1;
for(int j=2;i<nnodos;j++)
if(menorCoste[j] < min){
min = menorCoste[j];
k = j;
}
solucion[k][masCercano[k]] = G[k][masCercano[k]];
menorCoste[k] = infinito;
for(int j=1;j<nnodos;j++)
if(G[k][j] < menorCoste[j] && menorCoste[j]!=infinito){
menorCoste[j] = G[k][j];
masCercano[j] = k;
}
}
}
下面是导致问题的行:
if(G[k][j] < menorCoste[j] && menorCoste[j]!=infinito){
这里是我的变量:
#define MAX_NODOS 20000
#define infinito 10000;
int nnodos;
int nAristas;
int G[MAX_NODOS][MAX_NODOS];
int solucion[MAX_NODOS][MAX_NODOS];
int menorCoste[MAX_NODOS];
int masCercano[MAX_NODOS];
此宏对该行有什么影响? #define infinito 10000; – Hurkyl 2012-01-02 01:08:39
虽然你有什么是有效的,但我强烈建议将这些'{}'放在这些多行'for'循环中,这样读起来就更加困难,而且更容易搞砸了。 – 2012-01-02 01:11:09