[SOL] Esercizio n. 17 Array (17_array)
Spiegazione del Programma: Ricerca del Massimo in un Array
Questo programma in C++ trova il numero più grande (massimo) in una lista di numeri inseriti dall'utente e ne indica anche la posizione.
Come funziona il programma
1. Inclusione delle librerie e dichiarazioni iniziali
#include <iostream>
using namespace std;
- Include la libreria per input/output
- Permette di usare
coutecinsenza scriverestd::
2. Richiesta del numero di elementi
int n;
cout << "Quanti numeri? ";
cin >> n;
Il programma chiede all'utente quanti numeri vuole inserire e salva questa informazione nella variabile n.
3. Dichiarazione dell'array
double v[100];
Viene creato un array (vettore) chiamato v che può contenere fino a 100 numeri decimali.
4. Inserimento dei numeri
for (int i = 0; i < n; i++) {
cout << "Numero " << i + 1 << ": ";
cin >> v[i];
}
Un ciclo for chiede all'utente di inserire n numeri uno alla volta:
iparte da 0 e arriva fino an-1- Ogni numero viene salvato nella posizione
v[i]dell'array - Viene mostrato "Numero 1:", "Numero 2:", ecc. (usando
i + 1per rendere più chiaro all'utente)
5. Ricerca del massimo
double max = v[0];
int pos = 0;
for (int i = 1; i < n; i++) {
if (v[i] > max) {
max = v[i];
pos = i;
}
}
Strategia utilizzata:
- Si assume che il primo numero (
v[0]) sia il massimo iniziale - Si memorizza anche la sua posizione (
pos = 0) - Si confronta ogni numero successivo con il massimo attuale
- Se si trova un numero più grande, si aggiornano sia
maxchepos
6. Visualizzazione del risultato
cout << "Massimo = " << max << endl;
cout << "Posizione = " << pos + 1 << endl;
Il programma mostra:
- Il valore del numero massimo trovato
- La sua posizione (aggiungendo 1 perché l'utente conta da 1, non da 0)
Esempio di esecuzione
Se l'utente inserisce: 5, 2.5, 8.1, 3.7, 1.2
- Massimo = 8.1
- Posizione = 3 (è il terzo numero inserito)
Punti importanti da ricordare
- L'array ha dimensione fissa (100 elementi massimo)
- Le posizioni nell'array partono da 0, ma vengono mostrate all'utente partendo da 1
- Il programma funziona sia con numeri interi che decimali
- Se ci sono più numeri uguali al massimo, viene restituita la posizione del primo trovato
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Quanti numeri? ";
cin >> n;
double v[100];
for (int i = 0; i < n; i++) {
cout << "Numero " << i + 1 << ": ";
cin >> v[i];
}
double max = v[0];
int pos = 0;
for (int i = 1; i < n; i++) {
if (v[i] > max) {
max = v[i];
pos = i;
}
}
cout << "Massimo = " << max << endl;
cout << "Posizione = " << pos + 1 << endl;
return 0;
}