2 svar
547 visningar
segway behöver inte mer hjälp
segway 33 – Fd. Medlem
Postad: 19 okt 2018 11:04

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! 

haraldfreij 1322
Postad: 19 okt 2018 11:14 Redigerad: 19 okt 2018 11:18

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).

segway 33 – Fd. Medlem
Postad: 19 okt 2018 11:45

Tack för en bra förklaring och fotnot! 

Svara
Close