Exercițiul 14p
Variabilele m, n, p, q și x sunt de tip întreg, iar m<p<q<n.
Indicați o expresie C/C++ care are valoarea 1 dacă și numai dacă numărul memorat în variabila x aparține intervalului [m,n], dar NU și intervalului (p,q).
- a)x<=m || x>=p && x<=q || x>=n
- b)x<=m && x>=p || x<=q && x>=n
- c)x>=m || x<=p && x>=q || x<=n
- d)x>=m && x<=p || x>=q && x<=n
Arată răspunsul și explicațiaAscunde răspunsul
Răspuns corect: d) x>=m && x<=p || x>=q && x<=n
x trebuie să fie în [m,n], dar nu în (p,q). Cum m<p<q<n, asta înseamnă că x este fie între m și p (inclusiv capetele), fie între q și n: x>=m && x<=p || x>=q && x<=n. && are prioritate față de ||, deci expresia se citește exact așa: varianta d).
a) este adevărată pentru valori din afara lui [m,n] (de exemplu mai mici decât m), b) nu poate fi adevărată niciodată, iar c) este adevărată pentru orice x.
