a tricky if else(maybe not tricky but impossible)

N

nirkheys

Hi all,

I have been asked if the following is possible.
i googled for it,thought a lot about it and decided that it is
not possible,but i am posting it here in a hope of getting this
problem solved.

---------------------
if(x)
{
printf("Hello");
}
else
{
printf("world");
}Is there any value of x for which output would be Hello world?
 
R

Richard Heathfield

(e-mail address removed) said:
Hi all,

I have been asked if the following is possible.
i googled for it,thought a lot about it and decided that it is
not possible,but i am posting it here in a hope of getting this
problem solved.

---------------------
if(x)
{
printf("Hello");
}
else
{
printf("world");
}Is there any value of x for which output would be Hello world?

Yes.

#define x printf("Hello ") == 42
 
V

Vladimir Oka

Hi all,

I have been asked if the following is possible.
i googled for it,thought a lot about it and decided that it is
not possible,but i am posting it here in a hope of getting this
problem solved.

---------------------
if(x)
{
printf("Hello");
}
else
{
printf("world");
}Is there any value of x for which output would be Hello world?

No.

OTH, if somewhere you don't terminate output with '\n' or flush it, you
may see nothing at all.
 
A

arun

If x can be anything ??
Give a printf statement which prints "hello" in the place of x.
And negate the whole thing. Put it as --> if ( !x ).
The printf will return 5 and the negation will make the condition fail
and the printf in the else part will work. It will print "hello world".

Regards,
arun..
 
Z

Zero

Hi all,

I have been asked if the following is possible.
i googled for it,thought a lot about it and decided that it is
not possible,but i am posting it here in a hope of getting this
problem solved.

---------------------
if(x)
{
printf("Hello");
}
else
{
printf("world");
}Is there any value of x for which output would be Hello world?

Perhaps you don't understand if/else...
it's just either .. or and not both :)
 
N

nirkheys

arun said:
If x can be anything ??
Give a printf statement which prints "hello" in the place of x.
And negate the whole thing. Put it as --> if ( !x ).
The printf will return 5 and the negation will make the condition fail
and the printf in the else part will work. It will print "hello world".

Regards,
arun..

Thanks a lot Arun.
You solved my problem.


Just Saurabh
 
N

nirkheys

arun said:
If x can be anything ??
Give a printf statement which prints "hello" in the place of x.
And negate the whole thing. Put it as --> if ( !x ).
The printf will return 5 and the negation will make the condition fail
and the printf in the else part will work. It will print "hello world".

Regards,
arun..

Thanks a lot Arun.
You solved my problem.


Just Saurabh
 
M

Martin Ambuhl

Hi all,

I have been asked if the following is possible.
i googled for it,thought a lot about it and decided that it is
not possible,but i am posting it here in a hope of getting this
problem solved.

---------------------
if(x)
{
printf("Hello");
}
else
{
printf("world");
}Is there any value of x for which output would be Hello world?


#include <stdio.h>
#define x (printf("Hello "),fflush(stdout),0)

int main(void)
{
printf("[output:]\n");
if (x)
printf("Hello");
else
printf("world");
putchar('\n');
return 0;
}

[output:]
Hello world
 
B

Ben C

Hi all,

I have been asked if the following is possible.
i googled for it,thought a lot about it and decided that it is
not possible,but i am posting it here in a hope of getting this
problem solved.

---------------------
if(x)
{
printf("Hello");
}
else
{
printf("world");
}Is there any value of x for which output would be Hello world?

Here's one:

#include <stdio.h>

int y = 1;
#define x (y-- ? main() : 1)

int main(void)
{
if (x)
printf("Hello\n");
else
printf("World\n");

return 0;
}
 
C

CBFalconer

Richard said:
(e-mail address removed) said:

Yes.

#define x printf("Hello ") == 42

A nice devious mind at work :)

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson
More details at: <http://cfaj.freeshell.org/google/>
Also see <http://www.safalra.com/special/googlegroupsreply/>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,734
Messages
2,569,441
Members
44,832
Latest member
GlennSmall

Latest Threads

Top