infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Spulber Iosif din Februarie 28, 2007, 12:37:51



Titlul: int question ();
Scris de: Spulber Iosif din Februarie 28, 2007, 12:37:51
Se considera functia urmatoare:

Cod:
int question ()
{
int a=1,b=-1;

a= ( (--a) && (b++) );
a++;
b= ( b || (a--) );

cout<<"("<<a<<","<<b<<")";
return 1;
}

Incercati sa raspundeti la intrebare fara sa rulati programul.


Titlul: Răspuns: int question ();
Scris de: Andrei Grigorean din Februarie 28, 2007, 13:36:46
Mda.. neatentia asta  :-'. Destept programul.  =D&gt;


Titlul: Răspuns: int question ();
Scris de: Bogdan-Cristian Tataroiu din Februarie 28, 2007, 14:15:42
Destept C-ul asta :) Ma inselasem la inceput :P


Titlul: Răspuns: int question ();
Scris de: Kerekes Felix din Februarie 28, 2007, 15:47:53
Interesant.. Nici eu nu m-am prins la inceput


Titlul: Răspuns: int question ();
Scris de: Sima Cotizo din Februarie 28, 2007, 15:58:41
Ha! ... am gresit si eu... dar C face asta mereu sau doar la compilare cu O2 ? ... ca mi s-a intamplat sa faca si prost partea asta... ???


Titlul: Răspuns: int question ();
Scris de: Constantin-Cristian Balas din Februarie 28, 2007, 22:35:51
mie-mi afiseaza la fel si cu optimizari si fara.

PS: am ghicit inainte sa rulez \:D/


Titlul: Răspuns: int question ();
Scris de: Valentin Stanciu din Februarie 28, 2007, 22:58:35
sunt curios daca este compiler-dependent sau chiar asa este standardul C


Titlul: Răspuns: int question ();
Scris de: Constantin-Cristian Balas din Februarie 28, 2007, 23:08:09
e standard

Citat
This document provides all the information you need to read and write programs in the Standard C programming language. It describes all aspects of Standard C that are the same on all implementations that conform to the standard for C. Whenever your goal is to produce code that is as portable as possible, this document tells you what you can count on. And by omission, it lets you know what you cannot count on -- nothing in this document is peculiar to any nonstandard dialect of C.
http://ccs.ucsd.edu/c/  ... mai exact http://ccs.ucsd.edu/c/express.html#Logical%20AND


Titlul: Răspuns: int question ();
Scris de: Spulber Iosif din Martie 01, 2007, 14:51:11
Hehe... stiam ca multa lume isi prinde nasul. Ideea e ca daca in expresii de genul a && b a are valoarea 0 atunci b nu mai este evaluata, la fel in a || b daca a e 1 atunci b nu mai apuca sa fie evaluata. ;)