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