可能的重复:
关于If-Else在C++或C中同时执行的愚蠢问题是否有可能同时执行
if - else控制语句的if和else部分?
各位大家好..我在这样的采访中有一个问题我无法回答.考虑以下代码块.假设必要的头文件.
if(.......)
{
printf("hello");
}
else
{
printf("world");
}
Run Code Online (Sandbox Code Playgroud)
没有移动/添加任何代码并且没有使用额外的打印语句将输出带作"Hello world"..你必须在if语句中写下缺失的条件..是否可以通过某些条件执行两个块?请帮忙
Jer*_*myP 37
这会奏效
if(schrodingers_cat_is_dead())
{
printf("hello");
}
else
{
printf("world");
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,一旦你看到输出,它不仅会陷入只产生"你好"或"世界"的状态,而且有50%的可能性会杀死一只猫.
Ben*_*oit 34
试试fork()吧!(然后加入).这是我所知道的唯一涉及量子力学的特征.
fork() 每次返回两个不同的值,只有Schrödinger的猫能够.
注意:在评论中,Donal Fellows建议:
你将获得更可靠的行为
!vfork()
Don*_*ows 16
如果您可以将宏定义作为该条件的"部分"...
if (1
#define else if (1)
)
{
printf("hello");
}
else
{
printf("world");
}
Run Code Online (Sandbox Code Playgroud)
然后该代码将确实打印" helloworld".这是一个可怕的,肮脏的技巧; 提到它我的灵魂可能有点麻烦!
这取决于问题的确切措辞.正如您所描述的那样,问题并不是要求您执行if语句的两个分支.它要求您插入一个条件,导致打印"hello world"而不更改任何其他内容.
如果您完全自由地处理了条件,您可以使用此解决方案:
if(printf("hello ") == -1)
{
printf("hello");
}
else
{
printf("world");
}
Run Code Online (Sandbox Code Playgroud)
但是,该解决方案在条件中使用"printf",这是由您给出的规则之一排除的.我不清楚的是,printf禁令是否也适用于您在条件中写的内容.
注意:编辑答案以反映评论.最初的答案忽略了禁止印刷声明.
| 归档时间: |
|
| 查看次数: |
28566 次 |
| 最近记录: |