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

  1. Qual è l'obiettivo principale dell'algoritmo descritto?
  2. 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.

  3. Come vengono inizializzati i valori massimi nell'algoritmo?
  4. 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.

  5. Qual è la logica utilizzata per aggiornare i valori massimi durante l'input dei successivi numeri?
  6. 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.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community