Ayuda Antes de Usar el Algoritmo de Warshall

Iniciado por Deivbid, 23 Noviembre 2015, 03:20 AM

0 Miembros y 1 Visitante están viendo este tema.

Deivbid

Muy Buenas a Todos Disculpen Necesito ayuda con este codigo en lenguae C , mi intencion es crear una matriz a la cual, En los espacios que yo quiera , le pueda introducir un numero , esto es una forma de hacer una matriz de adyacencia con los pesos de los nodos/arcos de un grafo con intencion de hacer pasar esa matriz por un algoritmo de washall , EL PROBLEMA: intento llenar la matriz en los puntos donde quiero como ven en el codigo pero lo hace en lugares erroneos .... Que debo Hacer? gracias de antemano , Arriba la programacion :D

Código:

#include <stdio.h>


void Imprimir(int Nvertices,int Matriz[Nvertices][Nvertices]){
   
   int i,j;
   
   for(i=0;i<=Nvertices;i++){
      for(j=0;j<=Nvertices;j++){
         printf("%d\t",Matriz[j]);
         
                         }
                         printf("\n");
                     }
                     printf("\n\n");
      }
     
void PrepaMatriz(int Nvertices,int Madyacencia[Nvertices][Nvertices]){
   
   int i,j;
   for(i=0;i<Nvertices+1;i++){
      for(j=0;j<Nvertices+1;j++){
         Madyacencia[j] = 0;
      }
   }
}
   


int main(){
   
   int i,Nvertices,Fila,Columna,Narcos,peso;
   
   printf("\nBienvenido Deivbid");
   printf("\nCuantos Vertices tiene tu Matriz?: ");
   scanf("%d",&Nvertices);
   
   int Madyacencia[Nvertices+1][Nvertices+1];
   
   
   
   PrepaMatriz(Nvertices,Madyacencia);
   
   Imprimir(Nvertices,Madyacencia);
   
   
   
   
   printf("\nCuantos Arcos Tiene?: ");
   scanf("%d",&Narcos);
                     
      for(i=1;i<=Narcos;i++){
   printf("\nDonde se comunican?(poner F,C): " );
   scanf("%d %d",&Fila,&Columna);
   
   if(Fila>Nvertices || Columna>Nvertices){
      printf("\nError , por ahi no se puede :D");
      scanf("%d %d",&Fila,&Columna);}
   
     printf("\nCual es su peso?: ");
     scanf("%d",&peso);
   
     Madyacencia[Fila][Columna]=peso;
   
   
                     }
           
   Imprimir(Nvertices,Madyacencia);
     
   return(0);
}

0xFer

También pudiste haber editado el anterior tema.

printf("%d\t",Matriz[j]);

no será Matriz[i][j] ?
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

Deivbid

En mi Codigo lo tengo asi como dices
Matriz[i][j]

La verdad nose que es lo que es y esto apenas es el principio nisiquiera e agregado el warshall

0xFer

(int Nvertices,int Matriz[Nvertices][Nvertices])

recuerdas que tu matriz era de [Nvertices+1][Nvertices+1] ? modifica eso y estás listo
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}