2 svar
19 visningar
segway är nöjd med hjälpen!
segway 53
Postad: 19 okt 2018

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 683 – Mattecentrum-volontär
Postad: 19 okt 2018 Redigerad: 19 okt 2018

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 53
Postad: 19 okt 2018

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

Svara Avbryt
Close