5 svar
343 visningar
tech.60 5 – Fd. Medlem
Postad: 9 dec 2020 18:34

C språk;

Vad har fäljande uttryck för värd i c? 

1.2*2+1.0/2+2%5

Lindehaven 820 – Lärare
Postad: 9 dec 2020 18:51

Prova och se.

Visa spoiler
printf("1.2*2+1.0/2+2%5 = %f\n", 1.2*2+1.0/2+2%5);
tech.60 5 – Fd. Medlem
Postad: 9 dec 2020 19:30

Jag testade och fick 4,90000. Rätt?! 

Lindehaven 820 – Lärare
Postad: 10 dec 2020 09:59

Fundera på varför det blir 4,90000.

Tegelhus 225
Postad: 10 dec 2020 16:57

Som Lindehaven säger, försök fundera på varför det blir som det blir. En viktig del av det är att olika operatorer (t.ex. +, *, % etc) har olika prioritet, det vill säga exekveras i olika ordning. De operatorer med högst prioritet kommer att köras först. Om flera operatorer har samma prioritet, går man från vänster till höger. På sätt och vis liknar det prioriteringsreglerna i matematiken en hel del.

Du kan kolla upp operatorernas prioritet på exempelvis https://en.cppreference.com/w/c/language/operator_precedence (lägre siffra i tabellen = högre prioritet)

Lindehaven 820 – Lärare
Postad: 10 dec 2020 17:11
Visa spoiler

Förutom prioritet, kolla hur modulo-operatorn funkar.

Svara
Close