need solution to my interview ques. in C

rforravi's Avatar, Join Date: Aug 2008
Go4Expert Member
I have been asked a question ( an interesting one ) in an interview ystrday

I was like given the following :

.....
.....

if ( xxxxxxxxxxxxx)
printf("hello");
else
printf("world");


..
......



Now, the interviewer asked me not to change anything given except the " xxxxxxxxxxx"
He asked me to write such a condition in place of xxxx such that we get the output as :
"helloworld"


now.. i need to get the condition.. any help plz??
jamsheedm's Avatar
Light Poster
if(!printf(hello")) will do the trick
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
I don't think I would ever have guessed that.
Once given the solution I would probably have commented something along the lines that I hope that question isn't indicative of programming standards within the company, cos if it was then I wouldn't want to work there anyway.
jamsheedm's Avatar
Light Poster
this question does have nothing to do with programming standards.tather,its purely logical question for c experts
rforravi's Avatar, Join Date: Aug 2008
Go4Expert Member
@jamsheed m

Dude.. thx a lot.. it was a great answer!! i was really breaking my head in the interview.. and even now.. if u dont m ind, cud u xplain this .. me trying a lot to get it into my head. it looks like i understood it but at the same time, i feel i dint get it.

Neways.. great answer dude!

Thx!

Cheerz
R !
jamsheedm's Avatar
Light Poster
Its known tht printf returns an int value and its no of characters it prints
here printf("hello") will return 4
and !4 is 0,so else part will be printed after hello
so you get the reult....
its cool na ...wat you say ravi
rforravi's Avatar, Join Date: Aug 2008
Go4Expert Member
yeah. superb solution dude!!

so, this means the statement after the 'IF' is not getting printed.. but we are writing the same statement in the condition itslf.. . So, it has to get printed by default and itz directly jumping to else part..

Cool !!

Cheerz
R !!
jamsheedm's Avatar
Light Poster
a small careless error the return value is 5 not 4