Code:
int maxpeso=0;
void max_peso(int source, int sink, int nodes,int j)
{
int num;
int u=0,n=0;
if(j>nodes && source==in)
{
;
}
else
{
if(source == sink)
poe_na_fila(source);
else
{
if(j> nodes)
{
percurso[coroa]=0;
coroa -=1;
max_peso(percurso[coroa],sink,nodes,source+1);
}
else
{
if(adj[source][j]==oo)
max_peso(source, sink, nodes,j+1);
else
{
poe_na_fila(source);
max_peso(j, sink, nodes,0);
}
}
}
n=somador(percurso,nodes);
if(n>maxpeso)
maxpeso=n;
coroa=coroa-1;
percurso[coroa]=0;
coroa=coroa-1;
max_peso(percurso[coroa],sink, nodes, source+1);
}
}
main (int argc, char *argv[])
{
int noi,nof,peso,i,u,j,arcos,nos,inicio,fim;
inicio=fim=noi=nof=i=j=peso=arcos=nos=u=0;
FILE *fp;
fp=fopen(argv[1],"r");
if (fp==NULL)
printf("Impossível abrir o ficheiro %s", argv[1]);
else
{
fscanf(fp,"%d",&nos);
fscanf(fp,"%d",&arcos);
for(u=0;u<=nos;u++)
{
percurso[u]=0;
}
for(i=0; i<=nos;i++)
{
for(j=0;j<=nos;j++)
adj[i][j]=oo;
}
for(i=0;i<arcos;i++)
{
fscanf(fp,"%d %d %d", &noi,&nof,&peso);
adj[noi][nof]=peso;
}
fscanf(fp,"%d %d", &inicio, &fim);
in=inicio;
max_peso(inicio,fim,nos,0);
printf("%d\n",maxpeso);
}
}
I want it to stop at the if(j>nodes && source==in) condition and return to main to do the printf