Ciao a tutti, ho trovato un esercizio da sviluppare in C che richiedeva di sviluppare il seguente programmino:
Un omino ha deciso di fare una escursione in montagna, e vuole percorrere il sentiero più faticoso. la lunghezza massima del sentiero è 100km e viene introdotta in input da tastiera l'altitudine(in metri) ogni 100m e per terminare l'input inserire -1. Il programma deve calcolare il percorso più faticoso, ovvero:
INPUT:
100 300 250 50 -1
OUTPUT
Il percorso più faticoso è di 250m
/*poiché c'è una discesa da 300 a 50-->300-50=250*/
INPUT:
150 300 400 500 200 350 500 600 800 650 -1
OUTPUT:
Il percorso più faticoso è di 600m
/*poiché c'è una salita da 200 a 800-->800-200=600*/
parlando con il mio prof mi è stato detto che questo esercizio si può fare benissimo senza vettore e quindi ho pensato ad una soluzione simile:
codice:
#include <stdio.h>

#include <stdlib.h>



#define N 1000+1



int main ()

{

    int n1, n2, h,i=2;

    int max1, max2, maxS, maxD, MAX;

    max1=max2=maxS=maxD=0;

    

    printf ("Inserire valore: ");

    scanf  ("%d", &n1);

    printf ("Inserire valore: ");

    scanf  ("%d", &n2);

    do {

       h = n2 - n1;

       if ( h > 0 ) {

            if ( max2 > maxD ) {

                maxD=max2;

            } 

            max2=0;

            max1+=h;

       }

       else {

            if ( max1 > maxS )  {

               maxS=max1;

            }

            max1=0;

            max2+=abs(h);

       }

    n1=n2; 

    printf ("Inserire valore: ");

    scanf  ("%d", &n2);

    i++;

    }while ( n2 != -1 && i<N );    

    

    if ( max1 > maxS ) 

         maxS=max1;

    if ( max2 > maxD ) 

         maxD=max2;

    if ( maxD > maxS ) 

         MAX=maxD;

    else MAX=maxS;        

    

    printf ("Il percorso piu faticoso e %d\n", MAX);

    

    return 0;

}
spero che il problema sia chiaro...cerco di spiegare meglio...
grazie...