hola que tal, mi problema es este, no tengo muchos conocimientos de programacion y tengo un codigo y necesito saber que es lo que realiza cada linea del codigo, alguien de ustedes me podria ayudar porfas, que lo pongan adelante de cada linea, se los agradezco mucho, aki esta el codigo:
#include <stdio.h>
#include <conio.h>
#define MN 7 /* Número máximo de vertices*/
#define infinito 32767
/*Sea*/
int w[MN][MN],q[MN][MN];
unsigned char i,j;
int N;
int min(int a,int b)
{
return a<=b?a:b;
}
void ceros_grafo(int g[MN][MN])
{
unsigned char i,j;
for (i=1;i< N+1;i++ )
for (j=1; j< N+1;j++ )
g[i][j]=0;
}
void camino_min_a( )
{
unsigned char i,k,j;
int qikqkj;
/*Genera nueva matriz de costos q donde nodos inconexos cuestan infinito*/
ceros_grafo(q);
for (i=1;i< N+1 ;i++)
for (j=1; j< N+1;j++ )
if ( (w[i][j]==0) ) q[i][j] = infinito;
else q[i][j]=w[i][j];
/*Busca los costos m¡nimos*/
for (k=1; k< N+1;k++ )
for (i=1 ;i< N+1;i++ )
for (j=1;j< N+1;j++ )
if ( (q[i][k] != infinito) && (q[k][j] != infinito))
q[i][j] = min(q[i][j],q[i][k] + q[k][j]);
};
void camino_min_sc(int w[MN][MN], int q[MN][MN] )
{
unsigned char i,k,j;
int qikqkj;
/*Genera nueva matriz de costos q donde nodos inconexos cuestan infinito*/
ceros_grafo(q);
for (i=1; i < N+1 ;i++ )
for (j=1; j< N+1;j++ )
if ( (w[i][j]==0) ) q[i][j] = infinito;
else q[i][j]=w[i][j];
/*Busca los costos m¡nimos*/
for (k=1; k< N+1;k++)
for (i=1; i < N+1;i++ )
for (j=1; j< N+1;j++ )
if ( (i!=j) && ((q[i][k] != infinito) && (q[k][j] != infinito)))
q[i][j] = min(q[i][j],q[i][k] + q[k][j]);
};
void muestra_matriz_grafo(int g[MN][MN])
{
unsigned char i,j,Y;
Y = wherey();
for (i=1; i< N+1;i++ )
for (j=1;j < N+1;j++ )
{
gotoxy(5 + j * 6, Y + i);
if ( (g[i][j] != infinito) ) printf("%i",g[i][j]);
else printf("-");
};
printf("\n");
}
/* RUTINA PRINCIPAL */
/* ******************************************** */
void main()
{ clrscr();
N=0;
do
{
printf("Ruben Felipe Plata Salazar \n\n");
printf("Escribe el numero de nodos [1..7]:");
scanf("%i",&N);
if ( (N < 0) || (N > MN) ) N=0;
}while ( N==0 );
/* Llenado de Matriz de costos w*/
for (i=1;i<N+1; i++ )
{
printf("Desde el nodo %i \n", i);
for (j=1; j< N+1;j++)
if ( (i!=j) )
{
printf("Costo [ %i -> %i ]: ",i,j);
scanf("%i",&w[i][j]);
}
else w[i][j]=0;
printf("\n");
};
/* Calcula los caminos minimos de w y los deja en q*/
clrscr();
printf("Camino minimo.\n");
camino_min_sc(w,q);
muestra_matriz_grafo(q);
getch();
}