这是为您准备的一系列C ++难题中的第一个。希望你会喜欢。
因此,难题1:
给定以下程序:
#include <iostream>
int main()
{
const int a=1;
const int b=2;
const float c=0.5;
std::cout << a/b-a*c;
}
在程序内任何位置的新行上插入一些代码,以便输出为0。新行将包含AT MOST 18个字符(包括空格),其余行将保持不变。要清楚,这是有效的新代码的示例:
#include <iostream>
int main()
{
const int a=1;
const int b=2;
int* p = NULL;
const float c=0.5;
std::cout << a/b-a*c;
}
插入了一行15个字符的新行,这样就可以了。但是,它不能解决问题。
如果这对您来说太简单了,请不要担心,还会有更多!
2
我很高兴有人偶尔发布C ++问题!我的意思是,对于所有的难题,C ++解决方案都是20或30行,然后人们用J或K或Golfscript发布解决方案会过一阵子。
—
李斯特先生,2012年
结果必须是有效的,定义明确的C ++还是可以使用UB?(但正如Lister先生指出的那样,原始代码甚至不是有效的C ++。)
—
Konrad Rudolph 2012年
这是无效的。主要必须返回INT(读C ++标准)
—
BЈовић
我们在这里错过了重点。如果您介意的话,请输入int并返回0,但我没有。
—
Bogdan Alexandru
@Bogdan:Dafuq?首先,DevC ++是如此古老,它的输出是无关紧要的。其次,以任何给定操作系统为目标的任何给定配置中的任何给定编译器是否在任何时候都接受它并不会使它成为有效的C ++。
—
DeadMG 2012年