You*_*ufi 2 c++ gcc expression token
GCC一直告诉我:
预期')'之前';' token,
''
'''''''''''''''''''''''''' 在')'令牌之前
我找不到问题.这是有问题的功能:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下是导致问题的行:
if(G[k][j] < menorCoste[j] && menorCoste[j]!=infinito){
Run Code Online (Sandbox Code Playgroud)
这是我的变量:
#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];
Run Code Online (Sandbox Code Playgroud)
Mys*_*ial 12
你的宏中有一个额外的分号.
#define infinito 10000;
^
Run Code Online (Sandbox Code Playgroud)
摆脱它.
实际上,您的行已扩展为:
if(G[k][j] < menorCoste[j] && menorCoste[j]!=10000;){
^ does not belong here
Run Code Online (Sandbox Code Playgroud)
或者,根本不要使用宏:
const int MAX_NODOS = 20000;
const int infinito = 10000;
Run Code Online (Sandbox Code Playgroud)