esercizio array

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao, ho questo esercizio da fare
secondo me non ci dovrebbero essere errrori, ma perchè mi da come media '0'?
<?php
$numeri=array(12,13,14,44);
$numero_elementi=count($numeri);
$somma=0;
for($i=0; $i<=$numero_elementi; $i++)
{
$somma_numeri=($somma+$numero_elementi[$i]);
$media=($somma_numeri/$numero_elementi);
}
print $media;
?>
Grazie
 
meglio farlo cosi ^^
PHP:
<?php
$numeri=array(12,13,14,44);
$count=count($numeri);
$somma = 0;  
foreach ($numeri as $numero) 
{ 
    
    // $somma = $somma + $numero 
    $somma += $numero; 
} 
$media=$somma/$count;
echo "La somma dei numeri  è $somma e la media $media"; ?>
 
Ciao e grazie per l'aiuto. Prendendo spunto dal tuo suggerimento ho fatto la stessa cosa con il ciclo for

<?php
$numeri=array(12,13,14,44);
$numero_elementi=count($numeri);
$somma=0;
for($i=0; $i<$numero_elementi; $i++)
{
$somma=($somma+$numeri[$i]);
}
$media=($somma/$numero_elementi);
print "la somma è $somma, mentre la media è $media";
?>

Il codice sopra va bene

La cosa che non capisco è perchè se faccio così

<?php
$numeri=array(12,13,14,44);
$numero_elementi=count($numeri);
$somma=0;
for($i=0; $i<$numero_elementi; $i++)
{
$somma_numeri=($somma+$numeri[$i]);
}
$media=($somma_numeri/$numero_elementi);
print "la somma è $somma_numeri, mentre la media è $media";
?>
mi da un risultato diverso?
Grazie
 
Ultima modifica:
prima cosa nel ciclo for dovresti utilizzare $i<=$numero_elementi
PHP:
<?php
$numeri=array(12,13,14,44);
$numero_elementi=count($numeri);
$somma=0;
for($i=0; $i<$numero_elementi; $i++)
{
$somma_numeri=($somma+$numeri[$i]);
}
$media=($somma_numeri/$numero_elementi);
print "la somma è $somma_numeri, mentre la media è $media";
?>

poi come lo imposti tu qui in questo punto
PHP:
$somma_numeri=($somma+$numeri[$i]);
$somma_numeri sara sempre uguale a l'ultimo numero dell'array + $somma, cioe a 0,mettendo invece
PHP:
$somma+=$numeri[$i];

verra cambiata la variabile $somma che non rimanendo piu zero come impostata da te prima, andra a sommare tutti gli elemeni dell'array, in pratica al primo ciclo $somma da 0 diventa 12, quindi nel secondo ciclo verra sommato 12 + 13 e la variabile $somma diventera 25, nel terzo ciclo quindi sommera 25 a 14 =39 poi 39 + 44 = 83 ed ecco la somma bella e fatta ^^.
 

Discussioni simili