nepz Skrevet 11. oktober 2012 Del Skrevet 11. oktober 2012 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
Persn Skrevet 11. oktober 2012 Del Skrevet 11. oktober 2012 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
jonny Skrevet 11. oktober 2012 Del Skrevet 11. oktober 2012 (endret) sum-kallet ditt inneholder 11 argumenter, men funksjonen sum benytter bare de 10 første. 45 + 6 = 51. Hva sum1 gjør der må du spørre deg selv om. Endret 11. oktober 2012 av jonny 1 Lenke til kommentar
nepz Skrevet 11. oktober 2012 Forfatter Del Skrevet 11. oktober 2012 Så lett er det å overse enkle ting gitt. Jeg får feilmelding om jeg endre sum1 til sum, fordi den allerede har blitt declared Takk forresten :-) Lenke til kommentar
Olavxxx Skrevet 11. oktober 2012 Del Skrevet 11. oktober 2012 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
molty Skrevet 12. oktober 2012 Del Skrevet 12. oktober 2012 Vil anbefale å se på func_get_args funksjonen i php Så kan du kjøre en kombinasjon av func_get_args og foreach. Du får en mye lettere kode da Lenke til kommentar
nepz Skrevet 12. oktober 2012 Forfatter Del Skrevet 12. oktober 2012 $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 ;-) Lenke til kommentar
slacky Skrevet 12. oktober 2012 Del Skrevet 12. oktober 2012 (endret) $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 12. oktober 2012 av warpie Lenke til kommentar
Milktea Skrevet 13. oktober 2012 Del Skrevet 13. oktober 2012 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. 2 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå