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