Salve a tutti, parto con una piccola premessa: sto aiutando un ragazzo al terzo anno di uno strano liceo di cui non ricordo il nome (non sono aggiornato in merito alle riforme del sistema scolastico italiano) in cui imparano a programmare in C++. Ovviamente, essendo una scuola superiore, gli argomenti vengono trattati in maniera relativamente semplice.

Ora, ho scritto un breve codice per risolvere questo problema: "inserire N valori numerici in un vettore. Determinare il valore più grande, comunicando anche il numero di volte che è stato inserito".

Il codice è:
codice:
#include <iostream>
using namespace std;

main() {
    int n, max;
    int cont = 1; //il vettore avrà almeno un elemento, quindi il massimo sarà presente almeno una volta
    
    cout << "Quanti valori vuoi inserire nel vettore?\n";
    cin >> n;
    
    int vect[n];
   
    //inizializzazione vettore
    for(int i=0; i<n; i++) {
        cout << "Inserisci il " << i+1 << "^ elemento: ";
        cin >> vect[i];
    }
            
    max = vect[0]; // assumiamo come "massimo iniziale" il primo elemento del vettore
    
    for(int j=1; j<n; j++) {
        if(max == vect[j])
            cont++;
        else if(max < vect[j]){
            cont = 1;
            max = vect[j];
        }
    }
    
    cout << "Il massimo e' " << max << " ed e' presente " << cont << " volte" << endl;
    
    system("pause");
}
Credo che funzioni però non riesco a togliermi la sensazione che sia un po'... disordinato.
Vista la premessa iniziale (cioè che quello che vedete scritto in questo codice è più o meno quello con cui questo ragazzo ha a che fare a scuola) credete che questo codice sia migliorabile in qualche maniera o conviene seguire un approccio diverso? E nel caso, quale?

Grazie a tutti già da adesso!