【发布时间】:2011-01-26 13:41:08
【问题描述】:
鉴于下面的代码,您将如何创建/实施 SR.h 以便它在您的解决方案中生成正确的输出而没有任何星号?
我被这个问题弄糊涂了。我想知道人们解决这个问题的一些不同方法。
#include <cstdio>
#include "SR.h"
int main()
{
int j = 5;
int a[] = {10, 15};
{
SR x(j), y(a[0]), z(a[1]);
j = a[0];
a[0] = a[1];
a[1] = j;
printf("j = %d, a = {%d, %d}\n", j, a[0], a[1]);
}
printf("j = %d, a = {%d, %d}\n", j, a[0], a[1]);
}
输出:
j = 10, a = {15, 10}
j = 5, a = {10, 15}
第二个:
#include <cstdio>
#include "SR.h"
int main()
{
int sum = 0;
for (int i = 1; i < 100; i++) {
SR ii(i);
while (i--)
sum += i;
}
printf("sum = %d\n", sum);
}
//The output is "sum = 161700".
【问题讨论】:
-
为什么这不是一个真正的问题?我错过了什么吗?
-
@sbi 面试问题,尤其是人为的问题,通常不是“真实的”。并不是说我自己对此投了反对票或关闭投票。
-
这确实是一个优秀的问题,无论是出于一般知识还是面试目的。
-
@Kirill 等人:鉴于三个不同的人在问题发布后大约 20 分钟内提出了正确答案,我相信它可以“以目前的形式得到合理的回答" :P .
-
@Neil:称我为保守派,但对我来说,当它以语法问题的形式出现时(即你可以在其后加上问号的问题),它似乎是“真实的”,会带来问题,并且,理论上,允许你写出一些可以回答它的东西。它是否是“人为的”(无论这意味着什么 - 几乎所有的家庭作业问题都不是人为的吗?)对我来说似乎是主观的,我给出的标准似乎是客观的。
标签: c++