Hola a todos, la cuestión es que cuando intento imprimir la matriz de adyacencia, el programa no la imprime de forma correcta, les adjunto el codigo:
Código:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main(){
clrscr();
int i, a, cant, **p;
char *c, resp='s';
printf("Cantidad de nodos del grafo: ");
scanf("%d", &cant);
p=(int **)calloc(cant, sizeof(int*));
c=(char *)calloc(cant, sizeof(char));
if(c != NULL){
/*Aqui se introducen todos los nodos pegados, o sea
sin usar espacios entre ellos
*/
printf("\nIntroduzca todos los nodos en mayuscula: ");
scanf("%s", c);
if(strlen(c) > cant){
printf("\nCantidad de nodos fuera de limite");
}
else{
for (i=0; i<cant; i++){
for (a=0; a<cant; a++){
printf("\nHay camino de %c a %c s/n: ", c[i], c[a]);
fflush(stdin);
scanf("%c", &resp);
printf("%c", resp);
if (resp == 's' || resp == 'S'){
p[i][a] = 1;
printf("%d", p[i][a]);
}
else{
p[i][a] = 0;
printf("%d", p[i][a]);
}
}
printf("%s", "\n");
}
for (i=0; i<cant; i++){
for (a=0; a<cant; a++){
printf("%d", p[i][a]);
}
printf("%s", "\n");
}
}
}
else{
printf("\nNo hay espacio en memoria");
}
free(c);
free(p);
getch();
return 0;
}
Incluso imprimo la respuesta del usuario cuando pregunta si de tal nodo a tal nodo hay camino y no solo eso, sino que cargo el arreglo bidimensional y lo imprimo ahi mismo junto con la respuesta del usuario, pero aun asi cuando intento imprimir nuevamente el arreglo en el for que está abajo, imprime de forma totalmente diferente. No sé qué pasa a ver si me dan una mano. Desde ya gracias por su tiempo. Saludos.