Gå til innhold

Kodeproblemer med function


Anbefalte innlegg

Hallo!

 

Denne koden skal vise 51, men skrives ut som 45. Er det noen som ser om det mangler noe? Den viser riktig når jeg prøver f.eks 2+3+4 = 9. Oppgaven lyder som følger:Returnere summen av elementene i lista.

 

Greit å vite om jeg gjør det riktig, som jeg mener at jeg gjør. Mulig jeg mangler noe simpelt.

 

function sum ($tall1,$tall2,$tall3,$tall4,$tall5,$tall6,$tall7,$tall8,$tall9,$tall10)
{
   $resultat = $tall1+$tall2+$tall3+$tall4+$tall5+$tall6+$tall7+$tall8+$tall9+$tall10;

   echo $resultat;
}

sum (1,4,8,1,4,10,5,6,2,4,6);
function sum1($tall1,$tall2,$tall3,$tall4,$tall5,$tall6,$tall7,$tall8,$tall9,$tall10=0)
{
   $resultat = $tall1+$tall2+$tall3+$tall4+$tall5+$tall6+$tall7+$tall8+$tall9+$tall10;
   return $resultat;
}

Lenke til kommentar
Videoannonse
Annonse

function sum1($tall1,$tall2,$tall3,$tall4,$tall5,$tall6,$tall7,$tall8,$tall9,$tall10=0)

{

$resultat = $tall1+$tall2+$tall3+$tall4+$tall5+$tall6+$tall7+$tall8+$tall9+$tall10;

return $resultat;

}

[/code]

 

Nå er ikke jeg kjempegodt kjent med PHP og dens syntaks, men blir ikke $tall10=0 litt feil? Hvis det siste tallet 6 ikke er skrevet riktig så forklarer det hvorfor du får 45.

Lenke til kommentar

Hei,

Er du sikker på at oppgaven ikke vil du skal bruke en matrise/array og summere elementene?

 

Om du skal lage en så dårlig funksjon som det der, er fremdeles problemet at funksjonen din tar i mot 10 parametre og du sender 11.

Det siste tallet ditt (parameter 11) er 6 (Som Jonny påpeker)

 

function sum ($tall1,$tall2,$tall3,$tall4,$tall5,$tall6,$tall7,$tall8,$tall9,$tall10,$tall11)
{
   $resultat = $tall1+$tall2+$tall3+$tall4+$tall5+$tall6+$tall7+$tall8+$tall9+$tall10+$tall11;

   echo $resultat;
}
sum (1,4,8,1,4,10,5,6,2,4,6);

Lenke til kommentar

$tallrekke=array(1,4,8,1,4,10,5,6,2,4,6);
function returnerSum($tallrekke) {
$sum=0;
for($i=0;$i<count($tallrekke);$i++) {
$sum+=$tallrekke[$i];
return $sum;
}
}
echo returnerSum($tallrekke);

Brukte denne jeg ;-)

Return-statement skal ikke være i loopen (du returnerer første verdi). Forresten så er dette enda en situasjon hvor foreach passer bedre.

 

function sum($arr) {
 $sum=0;
 foreach($arr as $number) $sum+=$number;
 return $sum;
}
$arr=array(3,73,65,23,9);
echo sum($arr);

Endret av warpie
Lenke til kommentar

Eller enda enklere:

 

function sumArgs() {
return array_sum( func_get_args() );
}

echo sumArgs( 1, 4, 8, 1, 4, 10, 5, 6, 2, 4, 6 );

 

Hvis man først skal ha summen av elementene i en tabell er det best å bruke array_sum, som faktisk er innebygd.

  • Liker 2
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...