是否可以Hello使用单打印两次condition?
if "condition"
printf ("Hello");
else
printf("World");
Run Code Online (Sandbox Code Playgroud)
Mat*_*ard 83
if ( printf("Hello") == 0 )
printf ("Hello");
else
printf ("World");
Run Code Online (Sandbox Code Playgroud)
:-)
Fra*_*ger 21
"condition" === (printf("Hello"), 0)
Run Code Online (Sandbox Code Playgroud)
真的很蹩脚:
int main() {
if (printf("Hello"), 0)
printf ("Hello");
else
printf("World");
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用逗号运算符,因为您不必查找返回值printf以了解条件的作用.这增加了可读性和可维护性.:-)
sud*_*03r 17
这听起来像是一些采访难题.我希望这接近你想要的.
#include <stdio.h>
int main()
{
static int i = 0 ;
if( i++==0 ? main(): 1)
printf("Hello,");
else
printf("World\n");
return 0 ;
}
Run Code Online (Sandbox Code Playgroud)
版画 Hello, World
Eli*_*sky 13
系好安全带:
#include <stdio.h>
#include <setjmp.h>
int main()
{
jmp_buf env;
if (!setjmp(env))
{
printf("if executed\n");
longjmp(env, 1);
}
else
{
printf("else executed\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
打印:
if executed
else executed
Run Code Online (Sandbox Code Playgroud)
你是这个意思吗?我对此表示怀疑,但至少它是可能的.使用fork你也可以这样做,但分支将在不同的进程中运行.
小智 11
如果是在Unix上:
if (fork())
printf ("Hello");
else
printf("World");
Run Code Online (Sandbox Code Playgroud)
不保证打印顺序的部分
小智 6
#define CONDITION (0) if (0) {} else
Run Code Online (Sandbox Code Playgroud)
或者其他一些.
如果你在面试中看到这样的问题,尽可能快地逃跑!提出这些问题的团队肯定是不健康的.
编辑 - 我忘了澄清 - 这依赖于"其他"与最接近的开放"如果"匹配,并且基于它被写为"如果条件"而不是if(条件) - 括号将使拼图无法解决的事实.
该if语句执行一个或另一个受控语句(printf在您的示例中都是如此).无论你使用什么condition,该片段将打印"Hello"或"World",但不会同时打印.
编辑:好的,所以这是一个技巧问题,您可以在条件中放置任何您喜欢的内容(包括调用其他任何您想要的函数).但那并不有趣.我无法相信我因为给出了正确答案而得到了降价.
if ( printf("Hello")==0)
Run Code Online (Sandbox Code Playgroud)
见[ http://www.coders2020.com/what-does-printf-return]
(亚光纠正了我的=,谢谢,C很远)