Posizione del massimo valore di un array.

di il
7 risposte

Posizione del massimo valore di un array.

Sono alle prime armi con il C++, ed ho dei problemi ..
In questo caso devo: Dato un vettore di N i nteri,inizializzati da tastiera,determinare il valore massimo e stampare a video sia il massimo che laposizione in cui esso compare.

Ecco cosa ho programmato io... solo che mi da il risultato errato nella ricerca della posizione

#include <iostream>
/*Dato un vettore di N i nteri,inizializzati da tastiera,determinare il valore massimo e stampare a video sia il massimo che laposizione in cui esso compare*/
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int i,n,vector, max, posizione;

cout << " Quanti elementi vuoi caricare nell'array : ";
cin >> n;

for (i=0; i<n; i++)
{
cout << " Inserire dato : \n ";
cin >> vector;
}

cout << " Nell'array vi sono \n ";
for (i=0; i<n; i++)
{
cout << vector << " " << endl;
}

max = vector [0];
posizione = 0;
for (i=1; i<n; i++)
{
if (vector>max)
max = vector ;
posizione = i;
}

cout << " il massimo valore dell'array e' " << max << endl;
cout << " e la sua posizione e' " << posizione << endl;
return 0;
}

7 Risposte

  • Re: Posizione del massimo valore di un array.

    Ti consiglio di usare il tag code per inserire il tuo codice. Ad ogni modo il problema dovrebbe essere qui:
    if (vector[i]>max)
    max = vector [i];
    posizione = i;
    l'ultima istruzione viene eseguita sempre; per fare in modo che venga eseguita solo quando effettivamente hai trovato un massimo devi racchiudere fra {}.
    Inoltre, dai una dimensione massima a vector, es.:
    #define DIM_VECTOR 256
    ...
    {
      int vector[ DIM_VECTOR ];
      ...
    }
  • Re: Posizione del massimo valore di un array.

    candaluar ha scritto:


    Ti consiglio di usare il tag code per inserire il tuo codice. Ad ogni modo il problema dovrebbe essere qui:
    if (vector[i]>max)
    max = vector [i];
    posizione = i;
    l'ultima istruzione viene eseguita sempre; per fare in modo che venga eseguita solo quando effettivamente hai trovato un massimo devi racchiudere fra {}.
    Inoltre, dai una dimensione massima a vector, es.:
    #define DIM_VECTOR 256
    ...
    {
      int vector[ DIM_VECTOR ];
      ...
    }
    Ho provato a fare così , ma niente da fare se inserisco 10 valori mi dirà che il massimo si troverà nella posizione 9 qualsiasi esso sia, lo stesso se ci sono 4 numeri mi dice che il massimo ènella posizione 3.
  • Re: Posizione del massimo valore di un array.

    Riposta il codice modificato
  • Re: Posizione del massimo valore di un array.

    #include <iostream>
    /*Dato un vettore di N i nteri,inizializzati da tastiera,determinare il valore massimo e stampare a video sia il massimo che laposizione in cui esso compare*/
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    using namespace std;
    
    
    
    int main(int argc, char** argv) {
    int	i,n,vector[i], max, posizione;
    
    cout << " Quanti elementi vuoi caricare nell'array : ";
    cin >> n;
    
    for (i=0; i<n; i++)
    {
    	cout << " Inserire dato : \n ";
    	cin >> vector[i];
    }
    
    cout  << " Nell'array vi sono \n ";
    	for (i=0; i<n; i++)
    	{
    		cout << vector [i] << " " << endl;
    	}
    	
    	max = vector [0];
    	posizione = 0;
    	for (i=1; i<n; i++)
    	{
    		if (vector[i]>max)
    		max = vector [i];
    		{
    			posizione = i;
    		}
    	}
    	
    	cout << " il massimo valore dell'array e' " << max << endl;
    	cout << " e la sua posizione e'  " << posizione << endl;
    	return 0;
    }
  • Re: Posizione del massimo valore di un array.

    Non c'è nessuna differenza fra
    if (vector>max)
    max = vector ;
    {
    posizione = i;
    }

    e
    if (vector>max)
    max = vector ;
    posizione = i;

    Prova a ripiazzare correttamente le parentesi.
    Inoltre dai una dimensione massima a vector[], come ti ho spiegato nel post precedente.
  • Re: Posizione del massimo valore di un array.

    candaluar ha scritto:


    Non c'è nessuna differenza fra
    if (vector>max)
    max = vector ;
    {
    posizione = i;
    }

    e
    if (vector>max)
    max = vector ;
    posizione = i;

    Prova a ripiazzare correttamente le parentesi.
    Inoltre dai una dimensione massima a vector[], come ti ho spiegato nel post precedente.

    Grazie mille, ho risolto! Se è possibile pubblicherei un altro problema dove ho dei problemi..
  • Re: Posizione del massimo valore di un array.

    Altro problema altra discussione ...
Devi accedere o registrarti per scrivere nel forum
7 risposte