Informatică, întrebare adresată de amvkyu, 9 ani în urmă

Valorile x si y sunt de tip intreg, x memorand valoarea 8, iar y valoarea 6. Care dintre expresiile C/C++ de mai jos are valoarea 0?

a) 3*x-4*y==0
b) (x*y)/2 > x%y+1
c) !(x/2+2==y)
d) x-y+3!=0

Va rog sa si explicati raspunsul. Multumesc!

Răspunsuri la întrebare

Răspuns de NiceShotVi
3

Daca a ar fi raspunsul corect, atunci ar trebui ca 3*8 - 4*6 sa nu dea 0, dar calculand, 24-24 = 0, deci a-ul pica.

Daca b ar fi raspunsul corect, atunci ar trebui ca (8*6)/2 sa fie mai mare decat 8%6+1. Cu alte cuvinte, 24 > 3 ar trebui sa fie fals, dar stim ca este adevarat. Deci si b-ul pica.

Daca c ar fi raspunsul corect, atunci ar trebui ca !(8/2+2 == 6). Deci !(6==6). Expresia dintre paranteze returneaza valoarea 1, dar semnul exclamarii indica negara acesteia. Si deci returneaza valoarea 0. C-ul este corect!

Daca d ar fi raspunsul corect, atunci ar trebui ca 8-6+3 sa fie 0. Dar 5 este diferit de 0, deci returneaza valoarea 1. Pe noi ne-ar fi interesat sa dea 0.

Concluzionand, varianta corecta este C-ul.




amvkyu: Multumesc mult!
Alte întrebări interesante