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...