Concetti Chiave
- Il programma richiede all'utente di inserire 10 valori per determinare i due numeri maggiori.
- Utilizza un approccio top-down, inizializzando i valori massimi e aggiornandoli in base ai dati inseriti.
- Il primo e il secondo valore inseriti vengono confrontati e memorizzati come Max e max, garantendo che Max contenga sempre il valore maggiore.
- Un ciclo while continua a prendere input fino a 10 valori, aggiornando Max e max secondo le condizioni stabilite.
- Alla fine del programma, i due numeri maggiori trovati vengono stampati sullo schermo.
/* * Trovate i due numeri maggiori tra 10 valori, usando un approccio * simile all'Esercizio 3.24. Nota: potrete prendere in input ogni * valore soltanto una volta.Sviluppo dell'algoritmo
* * SVILUPPO (top-down per raffinamenti successivi) * * TOP) prendere in input 10 valori, determinare i due maggiori * * RA1) inizializzare counter a 1 * prendere in input il primo valore * memorizzarlo in Max, incrementare counter di 1 * prendere in input il secondo valore * memorizzarlo in maxmax, incrementare counter di 1 * se Max minore di max: * memorizzare Max in tmp * copiare max in Max, tmp in max * finché counter maggiore o uguale a 10: * prendere in input un valore * se valore maggiore Max: * copiare in max Max e in Max il nuovo valore * altrimenti se valore maggiore di max: * copiare in max il valore * incrementare counter di 1 * stampare Max e max * terminare programma */ #include
Logica di confronto
h> int main(void) { int counter, Max, max, number; counter = 1; printf("Enter %dst number: ", counter); scanf("%d", &Max); counter = counter + 1; printf("Enter %dst number: ", counter); scanf("%d", &max); counter = counter + 1; /* scambia i valori (in Max il massimo dei due) */ if (Max Max){ max = Max; Max = number; } else if (number > max) max = number; counter = counter + 1; } printf("The maximum values are %d and %d
", Max, max); return (0); }
Domande da interrogazione
- Qual è l'obiettivo principale dell'algoritmo descritto?
- Come vengono inizializzati i valori massimi nell'algoritmo?
- Qual è la logica utilizzata per aggiornare i valori massimi durante l'input dei successivi numeri?
L'obiettivo principale dell'algoritmo è trovare i due numeri maggiori tra dieci valori forniti in input, utilizzando un approccio che prevede di prendere ogni valore solo una volta.
I valori massimi vengono inizializzati prendendo in input i primi due numeri, memorizzando il maggiore in "Max" e il secondo maggiore in "max", con un controllo per scambiare i valori se necessario.
Durante l'input dei successivi numeri, l'algoritmo confronta ogni nuovo valore con "Max" e "max", aggiornando "Max" se il nuovo valore è maggiore e, in caso contrario, aggiornando "max" se il nuovo valore è maggiore di quest'ultimo.