Ir para conteúdo
Fórum Script Brasil
  • 0

programa não funciona


Thiago10gr

Pergunta

e ai beleza galera?!

to tentando fazer um programa ke calcula o custo e exibe da rota mais barata, essa função bf é o algoritimo de bellman ford e ele retorna um vetor com o caminho mais barato de cada nó...

eu ainda fiz a parte que soma a rota mais barata mas mesmo assim n ta funcionando, se algué puder me ajudar eu agradeço!!!

#include <stdio.h>
#include <stdlib.h>


struct telemento{
int valor;
struct telemento *prox;
};
typedef int tgrafo[10][10];




int *bf(tgrafo *g, int v){
int k,j,i;
int dist[10], pred[10], *resposta
for(i=0;i<10;i++){
dist[i]= 99;
pred[i] = -1;
}
dist[v]=0;
for(k=1;k<10;k++){
for(i=0;i<10;i++){
for(j=0;j<10;j++){
if((*g)[i][j] && dist[j] > dist[i] + (*g)[i][j]){
dist[j] = dist[i] + (*g)[i][j];
pred[j]=i;
}
}
}
}
for(i=0;i<10;i++){
for(j=0;j<10;j++){
if((*g)[i][j] && dist[j] > dist[i] + (*g)[i][j]){
return NULL;
}
}
}
resposta= ((int*)MALLOC(10*sizeof(int));
for(i=0;i<10;i++)
resp[i] = pre[i];
return resposta
}



int main(){
int orig, dest, vet[10], aux1, aux2, i;
float soma;

tgrafo g1 = {{0,600,550,600,700,0,500,550,0,0},
{600,0,700,450,500,600,0,0,0,700},
{550,700,0,450,650,700,550,0,650,0},
{600,450,450,0,0,550,0,550,700,600},
{700,500,650,0,0,0,0,600,0,700},
{0,600,700,550,0,0,700,0,500,0},
{500,0,550,0,0,700,0,800,0,0},
{550,0,0,550,600,0,800,0,0,650},
{0,0,650,700,0,500,0,0,0,800},
{0,700,0,600,700,0,0,650,800,0}};



printf("Informe a origem:\n ");
scanf("%d",&orig);
printf("Informe o destino:\n ");
scanf("%d",&dest);

vet[i] = (*bf(&g1, orig));
soma=0;
while(vet[i]!= -1){
for(i=orig;i<=10;i--){
if(dest == i){
aux1 = vet[i];
aux2 = i;
soma = (soma + g1[aux1][aux2]);
dest = vet[i];
}
}
}


printf("\nCusto da viagem mais barata: %4.2f", soma);

system("PAUSE");

return 0;
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...