Come si calcola il massimo elemento di un vettore di interi?

di Anonimizzato10289 il
3 risposte
Salve, sto provando a scriver eun semplice programma che determina il massimo elemento di un vettore di interi. Il codice che ho scritto è il seguente:
#include <iostream>
#include <cmath>
#include <stdlib.h>
using namespace std;

int massimoint(int dim, int vettore[])
{

    int massimo, i;
    //dim=sizeof(vettore)/sizeof(vettore[0]);
    massimo=vettore[0];
    
    for (i=1; i<dim; i++) 
    {
      if (vettore[i]>massimo)
      {
          massimo=vettore[i];
      } 
    }
 
return massimo;
}     

// funzione main //
int main()
{
int i, max, dim;
int x[dim];

cout << "Inserisci la dimensione del vettore\n";
cin >> dim;
cout <<"Inserisci il vettore\n";
for(i=0; i<dim; i++)
{
cin >> x[i];
}

max = massimoint(dim, x);

cout << "Valore del massimo elemento = " << max << "\n";    
    
system("pause"); 
return 0;  
}
Quando lo faccio comilare (con Dev C++), compila correttamente, ma quando lo eseguo mi parte sistematicamente la segnalazine errori di micorosoft e non riesco nemmeno a inserire i parametri. Mi capita solo con questo programma e non con gli altri. Perchè?

Edit skynet: inserimento code tags

3 Risposte

  • int i, max, dim;
    int x[dim];
    non è valido. il VLA non è supportato da tanti compilatori e quindi non fare affidamento. Poi secondo te non sapendo la dimensione di dim apriori come fa il compilatore a crearti un array di dimensione ignota?
  • Ma infatti dim, la dimensione del vettore, gli viene data come parametro d'ingresso. Il VLA cos'è?
  • Vla è l'acronimo di variable-leght arrray.
    La dimensione non viene assegnata in compilazione ma run time. E' una delle specifiche del C99
Devi accedere o registrarti per scrivere nel forum
3 risposte