Bom dia! Estou com pequeno problema com meu código.
Estou criando um programa que seleciona um Grafo ou um Dígrafo e através do ponto de origem e do ponto de destino ele monta uma matriz colocando '1' onde corresponder o valor.
Porém não sei se minha lógica esta errada ou o que está acontecendo, já tentei de inúmeras formas, porém sem sucesso.
O funcionamento do programa é o seguinte, você seleciona se é um grafo ou um dígrafo, quando selecionado, o programa pede o numero de vertices e o numero de arestas do Grafo, assim que passado os valores, o programa em seguida pede o ponto de origem e o ponto de destino. Usei o if e else para identificar se o ponto de origem e o ponto de destino que esta no comando de repetição corresponde a sentença do if e se pertencer ele adiciona '1' se não ele adiciona '0'.
Porém não estou obtendo êxito, ou a matriz zera tudo, ou fica '1' espalhados.
Segue meu código.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main(){
int result, vertice, arest;
int i ,j, pOri, pDest, pi, matriz[i][j];
printf("Matriz de grafos ou digrafos!");
printf("\n\n Escolha: (1) Grafos (2) Digrafos :");
scanf("%d", &result);
if(result = 1){ //GRAFO
printf("\nGRAFO NAO DIRECIONADO\n");
printf("\nInsira o numero de VERTICES: "); // Numero de Vertices do Grafo, determina quantas linhas e colunas da matriz
scanf("%d", &vertice);
printf("\nInsira o numero de ARESTAS por VERTICES: "); // Numero de arestas (linhas de conexão com vertices)
scanf("%d", &arest);
for( pi=0 ; pi < arest; ++pi){ // Repete ponto de Origem e Destino de acordo com o numero de Arestas
printf("\nPonto de Origem [%d]: ", pi+1);
scanf("%d", &pOri);
printf("\nPonto de Destino [%d]: ", pi+1);
scanf("%d", &pDest);
for(i = 0; i < vertice; i++) //Percorre a Matriz
for(j = 0; j < vertice; j++){
if(matriz[i][vertice] == matriz[pOri][vertice]){ // Verifica ponto de origem da matriz (Linha)
if(matriz[i][j] == matriz[i][pDest]){ // Verifica ponto de destino da matriz (coluna)
matriz[i][j] = 1; //Adiciona 1 se for encontrado
}
else{
matriz[i][j] = 0; //Adiciona 0 se não for encontrado
}
}
else{
matriz[i][j] = 0; //Adiciona 0 se não for encontrado
}
}
}
}
for(i = 0; i<vertice; ++i){ //Le a matriz
for(j = 0; j<vertice; ++j){
printf("%3d", matriz[i][j]);
}
printf("\n");
}
getch();
return 0;
}