View Full Version : [C] Assegnamenti
Date le seguenti istruzioni di definizione e di assegnamento:
int a=-5, b=9; double c=7.3;
indicare il risultato delle seguenti espressioni:
(b % 9) || (a + 5) && (c > 5)
((c = a) && b) || ((a + b) && !a)
reptile9985
23-06-2007, 17:57
0 o false
la seconda non dovrebbe compilare
Ciao, in pratica al fatot che siano false ci sei arrivato sostituendo i valori nelle variabili e "giocando" con || = or e && = and ?
reptile9985
23-06-2007, 18:08
certo, non ho compilato ma:
0 == false
1 == true
con || e && si valuta la seconda componente solo se serve, ad es. in a || b se a è true b non lo esamina, e in a && b se a è false b non viene esaminato
non vedo altro da sapere
la seconda espressione non credo abbia senso
..::DAVE::..
23-06-2007, 22:25
Date le seguenti istruzioni di definizione e di assegnamento:
int a=-5, b=9; double c=7.3;
indicare il risultato delle seguenti espressioni:
(b % 9) || (a + 5) && (c > 5)
((c = a) && b) || ((a + b) && !a)
certo, non ho compilato ma:
0 == false
1 == true
con || e && si valuta la seconda componente solo se serve, ad es. in a || b se a è true b non lo esamina, e in a && b se a è false b non viene esaminato
non vedo altro da sapere
la seconda espressione non credo abbia senso
io direi che la seconda compila poichè sarebbe come fare:
c=a;
(c && b) || ((a+b) && 1a);
quindi funziona.
correggetemi se sbaglio.
edit: funziona al 100% (appena testato) da solo un warning
io direi che la seconda compila poichè sarebbe come fare:
c=a;
(c && b) || ((a+b) && 1a);
Fatemi capire: c&&b come faccio a determinare che sono entrambe vere?
indicare il risultato delle seguenti espressioni:
(b % 9) || (a + 5) && (c > 5)
((c = a) && b) || ((a + b) && !a)La prima 0, la seconda 1.
Gli operatori || (OR) e && (AND) sono operatori logici, il cui risultato è sempre un 0 o 1 (di tipo int).
Es.:
7 || 0 ---> 1 (nota, lo 0 non viene nemmeno valutato perché il 7 rende già 'vera' l'espressione)
-4 && 2 ---> 1
0 || !5 ---> 0
8 && !0 ---> 1
Ognuno degli operandi viene visto solo nell'ottica di essere 'vero' (diverso da 0) o 'falso' (uguale a 0).
La prima 0, la seconda 1.
Gli operatori || (OR) e && (AND) sono operatori logici, il cui risultato è sempre un 0 o 1 (di tipo int).
Es.:
7 || 0 ---> 1 (nota, lo 0 non viene nemmeno valutato perché il 7 rende già 'vera' l'espressione)
-4 && 2 ---> 1
0 || !5 ---> 0
8 && !0 ---> 1
Ognuno degli operandi viene visto solo nell'ottica di essere 'vero' (diverso da 0) o 'falso' (uguale a 0).
Ok ti ringrazio! Ora mi è chiaro! :ave:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.