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
#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);
}
Utiliza la etiqueta Geshi para subir tu código, de lo contrario se pierden algunas cosas del código.
Para crear una matriz 4x4 ( una de 4 Vertices) puede usar lo siguiente;
int Madyacencia[4][4];
int NVectores = 4;
int Madyacencia[NVectores][NVectores];
observa que no es necesario agregar el +1.
más simple es todavía inicializar sus valores( o recorrerlos):
int i,j;
for(i = 0; i < NVertices;i++)
for(j = 0; j < NVertices;j++)
Madyacencia[i][j] = 0;
también puedes hacerlo con menset; http://c.conclase.net/librerias/?ansifun=memset
lo quieres imprimir?;
int i,j;
for(i = 0; i < NVertices;i++)
for(j = 0; j < NVertices;j++)
printf(Madyacencia[i][j]);
también te sirve:
printf(Madyacencia[Fila][Columna]);
Madyacencia[Fila][Columna] = peso;
Vale lo Intentare, Lo que sucede es que la matriz es de tantos vertices haya en un grafo , y me lo dan en un archivo , es decir , nose de cuento sera la matriz por eso debe ser con valores introducidos manualmente , sino los pusira como tu dices , Gracias amigo ya vuelvo a publicar el tema