Olá! Estou fazendo um trabalho sobre algoritmo de Dijkstra, e estou tendo problemas para ler o arquivo de entrada.
O arquivo de entrada seguirá o seguinte modelo:
Onde a 1ª linha me dirá a quantidade de vértices e arestas do grafo, a última linha o ponto de partida (origem), e o restante as arestas.
Não estou conseguindo ler as arestas e atribuir o peso aos respectivos vértices. Segue meu código:
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
int letraParaNumero(char vertice){
char c = vertice;
int v = c - 65;
return v;
}
int main(){
int V, E;
FILE *f = fopen("dados.txt", "r");
fscanf(f, "%d %d", &V, &E); // lê primeira linha do arquivo
int grafo[V][V];
int v1, v2, peso;
char vertice1, vertice2;
while(fscanf(f, "%c %c %d", &vertice1, &vertice2, &peso) != EOF){
v1 = letraParaNumero(vertice1);
v2 = letraParaNumero(vertice2);
grafo[v1][v2] = peso;
grafo[v2][v1] = peso;
}
fclose(f);
}
Também preciso fazer a leitura da última linha e atribuir a variável de partida, que seria lida como um char e convertida para int com a função letraParaNumero.
Obrigado pela atenção!