giulia18395 ha scritto:
Quando trovo un m che non sarà più > prodotto[/size]
In realtà il seguente codice da te postato
prodotto = x[0];
for (i = 1; i < 500; i++)
{
do{
cin >> m;
if (m>prodotto)
{
x[i] = m;
prodotto = prodotto*m;
}
} while (m <= prodotto);
}
fa il contrario... in quanto continua a leggere valori finché il vettore x non è pieno. Sinceramente anche io credo che la strada giusta sia questa, visto che poi x verrà passato alla funzione estraindice().
Detto ciò il codice potrebbe essere semplificato nel seguente modo:
int x[500];
cin >> x[0];
int prodotto = x[0];
for(int i = 1; i < 500; ++i)
{
while(true)
{
cin >> x[i];
if(x[i] > prodotto)
{
prodotto *= x[i];
break;
}
}
}
In ogni caso spero tu abbia compreso tutto il discorso relativo al rischio di overflow!