Maxvärdet i en array
Hej,
Ska skriva ett program som använder en flyttals-array. Användaren ska fylla arrayen med värden i en loop. Efter den loopen skall programmet loopa igenom arrayen igen och hitta det största värdet.
Detta är den färdiga koden. Jag förstår dock inte varför man måste deklarera
max = arr[0]; innan loopen? (rad 42)
Hur kan kompilatorn veta vilken som är maxvärdet utifrån den koden? Jag förstår verkligen inte. Någon som har något hum om detta och skulle vilja förklara?
Så tacksam för all hjälp!
Du måste ha ett värde att jämföra med för att det som görs i loopen ska fungera (där jämför du ju hela tiden med nuvarande maximum, och uppdaterar om nuvarande värde är större). Därför hanteras arrayens första värde (index 0) annorlunda än resten av arrayen. Då har vi ännu inte något max-värde, och vet därför att arr[0] är det största värdet som hittills stötts på.
I övrigt, en formulerings grej: kompilatorn vet ingenting om vad som är maxvärdet. Kompilatorn är programmet som översätter din högnivåkod (skriven i C) till lågnivåkod (maskinkod) som processorn kan exekvera. Så det är mer rätt att säga att programmet förstår vad som är maxvärdet än att kompilatorn förstår det (även om en del är allergiska mot att använda den typen av förmänskilgande uttryck över huvudtaget).
Tack för en bra förklaring och fotnot!