massimo elemento di un vettore

Realizziamo alcuni esempi su come trovare il massimo elemento di un vettore.

Troviamo il massimo elemento di un vettore ed il suo indice

Innanzitutto dichiariamo le variabili necessarie:

N – indica il numero di elementi

i – contatore del ciclo for

max – per conservare il valore massimo

p – indica la posizione del valore massimo

Dopo chiediamo di inserire il numero di elementi, cioè N e controlliamo che sia un valore maggiore di zero con un ciclo do while.

Dichiariamo dunque un array a di N elementi e con un ciclo for inseriamo i valori nell’array.

Quindi poniamo il massimo uguale al primo elemento dell’array e l’indice uguale a 0.

Poi, controlliamo se ciascun elemento è maggiore del valore massimo. Se tale condizione è verificata allora aggiorniamo il valore del massimo e dell’indice.

N.B. Non è corretto indicare max = 0 in quanto, nell’ipotesi in cui, si inseriscano tutti i numeri negativi si avrebbe come valore massimo 0.
Es:
max = 0 N = 4 a[N] = {-2,-3,-4,-5}
…. //calcolo il massimo
Il valore massimo dovrebbe essere -2 ma l’algoritmo restituisce erroneamente zero.

Infine visualizziamo in output i valori ottenuti.

Ecco quindi l’algoritmo completo:

#include<iostream>
using namespace std;

#define N 10

int main() {
    int i, max, p;

    int a[N];

    // Input dei numeri nell'array
    for (i = 0; i < N; i++) {
        cout << "Inserisci un numero: ";
        cin >> a[i];
    }

    // Troviamo il massimo e il suo indice
    max = a[0]; // Poniamo il massimo uguale al primo elemento
    p = 0; // Poniamo l'indice uguale a 0

    for (i = 0; i < N; i++) {
        if (a[i] > max) {
            max = a[i];
            p = i;
        }
    }

    // Output del massimo e del suo indice
    cout << "Massimo, indice " << p << ", valore " << max << endl;

    return 0;
}

Troviamo il maggiore e quante volte ricorre

Per realizzare questo algoritmo basta semplicemente aggiungere una variabile c che conta quante volte compare il valore massimo.

La faremo incrementare di 1 se trova lo stesso valore, mentre la inizializziamo a zero se trova un nuovo massimo.

Ecco quindi il codice completo:

#include<iostream>
using namespace std;

#define N 10

int main() {
    int i, max, p, c;

    int a[N];

    // Input dei numeri nell'array
    for (i = 0; i < N; i++) {
        cout << "Inserisci un numero: ";
        cin >> a[i];
    }

    // Troviamo il massimo, il suo indice e quante volte ricorre
    max = a[0]; // Poniamo il massimo uguale al primo elemento
    p = 0;
    c = 1;

    for (i = 0; i < N; i++) {
        if (a[i] > max) {
            max = a[i];
            p = i;
            c = 1;
        } else if (a[i] == max) {
            c++;
        }
    }

    // Output del massimo, del suo indice e di quante volte ricorre
    cout << "Massimo, indice " << p << ", valore " << max << ", ricorre " << c << " volte" << endl;

    return 0;
}

Abbiamo realizzato alcuni semplici esempi per trovare il massimo elemento di un vettore, nelle prossime lezioni ci eserciteremo ancora sui vettori.

Alcuni link utili

Indice argomenti linguaggio C++

Array o vettori in C++

Approfondimento vettori in C++

Esercitazione sugli array in C++

Esercizi con gli array

Ricerca sequenziale in C++

Ricerca in un array ordinato

Array con numeri random

Ricerca binaria

Successione di Fibonacci in C++

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *