Har skapat ett program som räknar ut bland annat medianen av tal , Användaren får först välja antalet tal som skall användas och sedan mata in dessa. Dessa läggs i en Array och den sorteras i storleksordning. När man hammnar på ett jämnt antal tal skall de två talen i mitten summeras och sedan delas med 2. Själva If-satsen som sköter detta ser ut som följande:
nlöner=antalet tal man tidigare matat in. När jag vill räkna detta utanför koden vill ja ha en +1 istället för -1 för att få det första talet (mittenlön0).
Alltså om man matar in 6 tal och dem är 10 20 30 40 50 och 60 blir medianen 35. Om jag förstår koden rätt så tar den ju antalet tal dvs 6, delar det med 2 och sedan tar minus 1 alltså "mittenlön0" tilldelas det andra talet (20), sedan sätter den mittenlön1 till 30 eftersom 6/2=3 och 30 är det tredje talet i listan. 30+20=50 50/2 =25. Koden genererar rätt svar (35) och inte 25. Var tänker jag fel och koden rätt?
ber om ursäkt om det är rörigt som satan eller jag bara är allmänt trög
//Fluffey
Koden är rätt eftersom den tar faktiskt 30+40=70 sen 70/2 = 35. Du tänker fel eftersom arrayer är noll-indexerade - det vill säga första talet börjar på index 0.
Visa signatur
Lian Li 6070B / Asus P8P67 B3 / Intel Core i5 2500K @ 4.5GHz Corsair Vengance 8GB 1600MHz / Asus GTX780 / Corsair TX650V2
Koden är rätt eftersom den tar faktiskt 30+40=70 sen 70/2 = 35. Du tänker fel eftersom arrayer är noll-indexerade - det vill säga första talet börjar på index 0.