Massimo di un Vettore

Il problema di trovare il massimo di un vettore è il seguente:

“Dato un vettore di n elementi interi, trovare l’elemento massimo in esso contenuto”.

Per risolvere questo problema partiamo da un esempio. Supponiamo di avere questo vettore:

Chiaramente la soluzione di questo problema è max=3 perchè il valore più grande contenuto nel vettore è 3.

Per risolvere il problema possiamo pensare di creare una variabile chiamata max che contiene il massimo attualmente trovato nel vettore. L’obiettivo sarà di visitare ogni casella e se il valore contenuto in essa è maggiore del massimo allora il nuovo massimo dovrà essere il valore della casella stessa. Vediamo come potrebbe funzionare l’algoritmo:

Algoritmo

Il diagramma è stato implementato utilizzando il software Flowgorithm

Implementazione

#include <iostream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <cmath>

using namespace std;

// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int massimo(int[] vet, int lunghezza);

int main() {
    int vet[3];
    int max;
    
    max = 0;
    vet[0] = 5;
    vet[1] = 3;
    vet[2] = -2;
    max = massimo(vet, 3);
    cout << "Il massimo è";
    cout << max << endl;
    return 0;
}

int massimo(int[] vet, int lunghezza) {
    int max, i;
    // All'inizio il max è uguale al primo elemento del vettore
    max = vet[0];
    for (i = 0; i <= lunghezza - 1; i++) {
        
        // Se il valore della casella è maggiore del massimo
        if (vet[i] > max) {       
            // Il massimo diventa  il valore della casella
            max = vet[i];
        }
    }   
    return max;
}

Prova a implementare il codice su ideone.com!

Torna a vettori