Ciao devo fare un algoritmo che mi calcoli il percorso minimo di un viaggiatore.
La scelta delle destinazioni viene effettuata in base al minimo spostamento rispetto alla posizione corrente. Per esempio supponendo che il viaggiatore si trovi inizialmente al km 133 e le località da visitare sono ai km 72, 179, 321 allora il percorso sarà : 133 -> 179 -> 72 -> 321. Ho fatto in questo modo:

codice:
#include <stdio.h>
#include <math.h>
#define I 20

int main()
{
    int KM[I];
    int i, j, k, pos, max, new_pos, app;
    int CURRPOS;
    int MINPATH;

    printf("Inserisci la posizione della località da visitare: \n");
    printf("Inserisci un valore negativo per terminare.\n");
    scanf("%d", &pos);
    i = 0;
    while ( pos > 0 ) {
        KM[i] = pos;
        printf("Inserisci la posizione della località da visitare: \n");
        scanf("%d", &pos);
        i++;
    }

    for ( j = 0; j < i; j++ ) {
        printf("%d\t", KM[j]);
    }


    printf("\n\n");
    printf("Inserisci la posizione corrente iniziale del commesso viaggiatore : \n");
    scanf("%d", &CURRPOS);

    printf("%d", CURRPOS);
    for ( k = 0; k < i; k++ ) {
        max = fabs(CURRPOS - KM[0]);
        new_pos = KM[0];
        for ( j = 1; j < i; j++ ) {
            app = fabs(CURRPOS - KM[j]);
            if ( app < max ) {
                max = app;
                new_pos = KM[j];
            }
            else if ( app == 0 ) {
              continue;
            }
        }
        CURRPOS = new_pos;
        printf("->%d", CURRPOS);

    }

    return 0;
}
il problema è che non mi aggiorna CURRPOS alla fine di ogni ciclo for (con la variabile j )...avete suggerimenti ? Grazie