【发布时间】:2012-01-31 13:44:10
【问题描述】:
GCC 不断告诉我:
在“;”标记之前应为“)”,
')' 标记之前的预期主表达式
应在“)”标记之前使用“;”
我找不到问题所在。这是有问题的函数:
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;
-
虽然你所拥有的是有效的,但我强烈建议将那些
{}放在那些多行for循环周围,这样更难阅读,也更容易搞砸。
标签: c++ gcc expression token