Ciao, sto provando ad eseguire questo codice
#include<stdio.h>
#include<stdlib.h>
typedef struct{ unsigned visitato; unsigned int costo;}Nodo;
unsigned int vertici;
unsigned int archi;
unsigned int sorgente;
unsigned int destinazione;
unsigned int grafo[1000000][1000000];
Nodo nodi[10000];
void dijkstra(unsigned int partenza)
{
unsigned int i, temp;
for(i=0; i<vertici; i++)
{
if(!nodi[i].visitato)
{
temp=nodi[partenza].costo+grafo[partenza][i];
if(temp<nodi[i].costo)
nodi[i].costo=temp;
dijkstra(i);
nodi[i].visitato=1;
}
}
}
int main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
unsigned int i, j, t1, t2, t3;
scanf("%u", &vertici);
scanf("%u", &archi);
scanf("%u", &sorgente);
scanf("%u", &destinazione);
for(i=0; i<archi; i++)
{
for(j=0; j<archi; j++)
{
grafo[i][j]=0;
}
}
for(i=0; i<archi; i++)
{
scanf("%u%u%u", &t1, &t2, &t3);
grafo[t1-1][t2-1]=t3;
grafo[t2-1][t1-1]=t3;
}
for(i=0; i<vertici; i++)
{
nodi[i].visitato=0;
nodi[i].costo=0;
}
nodi[sorgente].visitato=1;
dijkstra(sorgente);
printf("%u", nodi[destinazione+1].costo);
return 0;
}
Sul mio computer viene eseguito ma il correttore automatico da errore di compilazione:
dijkstra.c: In function ‘main’:
dijkstra.c:31:5: warning: ignoring return value of ‘freopen’, declared with attribute warn_unused_result [-Wunused-result]
freopen(“input.txt”, “r”, stdin);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dijkstra.c:32:5: warning: ignoring return value of ‘freopen’, declared with attribute warn_unused_result [-Wunused-result]
freopen(“output.txt”, “w”, stdout);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dijkstra.c:36:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%u", &vertici);
^~~~~~~~~~~~~~~~~~~~~
dijkstra.c:37:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%u", &archi);
^~~~~~~~~~~~~~~~~~~
dijkstra.c:38:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%u", &sorgente);
^~~~~~~~~~~~~~~~~~~~~~
dijkstra.c:39:5: warning: ignoring return value of ‘scanf’, de
Qualcuno mi sa dire dove sbaglio?