Az x és y int tipusú változók. Az alábbi C/C++ kifejezések közül melyiknek lesz az értéke 1 akkor és csakis akkor, ha az x és y változókban tárolt nullátol különböző egész számok egyenlőek?
A. (x%y==0) && (y%x==0) && (x*y>0) B. (x<=y) && (y<x)
C. (x<=y) || (y<=x) D. x*x==y*y
Azt nem tudom eldönetni, hogy az A vagy a D a helyes?
Technikailag egyiknek sem, mivel ezek logikai értéket (igaz/hamis) adnak vissza, nem pedig integert.
(Bár persze ez a kettő szépen alakítható, de a bool akkor sem int elméleti szempontból.)
Ha jól értelmezem:
int x, y; // előjeles egész
x != 0 és y != 0 és x == y
Akkor
A. (x%y==0) && (y%x==0) && (x*y>0) // Mivel ugyanaz a két szám a maradékképzés művelete 1 lesz továbbá akár negatívak akár pozitívak az x,y értékek, a szorzatuk pozitív; mindhárom kif. értéke 1 => 1
B. (x<=y) && (y<x) // A második kif értéke 0, mivel ÉS-el van összekötve => 0
C. (x<=y) || (y<=x) // Mivel az egyenlőség megengedett => 1
D. x*x==y*y // Mivel azt mondtad hogy x == y így => 1
De ha vmit elnéztem ne kövezzetek meg. Amúgy miért nem pötyögöd be egy file-ba és fordítod le?
Laci, elsősorban byteokban beszél a gép, vagy méginkább szavakban (8, 16, 32, 64 bites számokban), tehát még csak azt sem mondhatod, hogy az "alap" az int. Az int egy absztrakció a gép architektúrája felett.
A (C++) nyelv szemantikája szerint a logikai kifejezés értéke true vagy false. Az lényegtelen, hogy ezek hogy konvertálódnak intté vagy a másik irányba.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!