Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: jairogon en 2 Julio 2010, 00:45 am



Título: Es correcto?
Publicado por: jairogon en 2 Julio 2010, 00:45 am
fact *=n==0 ? 1.0 : n;


Es correcto expresar lo anterior como


Código:
fact=fact*n;
if(fact==0) fact=1.0;
else fact=n;
:D


Título: Re: Es correcto?
Publicado por: nicolas_cof en 2 Julio 2010, 00:53 am
jairogon, seria de esta forma

Código:
fact = fact * n;
if ( fact == 0 ) return 1.0;
else return n;

Lo anterior esta mal declarado ya que == tiene mas precedencia que *= por lo tanto tendria que quedar asi...

Código:
(fact *= n) == 0 ? 1.0 : n;

Salu10.


Título: Re: Es correcto?
Publicado por: jairogon en 2 Julio 2010, 15:13 pm
jairogon, seria de esta forma

Código:
fact = fact * n;
if ( fact == 0 ) return 1.0;
else return n;

Lo anterior esta mal declarado ya que == tiene mas precedencia que *= por lo tanto tendria que quedar asi...

Código:
(fact *= n) == 0 ? 1.0 : n;

Salu10.

O.K

THANKS