【发布时间】:2020-07-12 14:57:59
【问题描述】:
我通常会删除默认代码并开始自己解决整个问题。但是,hackerrank 测试用例显示的输出与我针对自定义输入运行时出现的输出不同。为什么显示的数字不同?
请记住,我尝试了不同的输入大小,例如 float、long long int、int 和 double;
#include <bits/stdc++.h>
using namespace std;
int main() {
long long int arr[5], neglect = 0, min = 9999999999999, max = 0, curr = 0;
for (int i = 0; i < 5; i++) {
cin >> arr[i];
}
while (neglect < 5) {
for (int i = 0; i < 5; i++) {
if (i == neglect) {i++;}
curr += arr[i];
}
if (curr < min) {min = curr;}
if (curr > max) {max = curr;}
//cout << curr << endl;
//cout << curr << " " << min << " " << max << endl;
curr = 0;
neglect++;
}
cout << min << " " << max;
}
我想要的只是以尝试所有组合然后显示最小值和最大值的方式来解决它。我知道我的代码不是解决它的最佳方法,我知道我可以对数组进行排序并排除第一个和最后一个元素,但请多多包涵。
输入:1 2 3 4 5
声称的输出:11 4198826
但是当我使用相同的自定义输入和它显示的注释行对其进行调试时:
14 14 14
13 13 14
12 12 14
11 11 14
10 10 14
10 14
这是否意味着我的代码应该可以工作?
【问题讨论】:
-
#include <bits/stdc++.h> using namespace std;- 永远不要那样做。见Why should I not #include <bits/stdc++.h>? 和Why is "using namespace std;" considered bad practice?。 -
@JesperJuhl 谢谢你告诉我这件事。我不知道我的编码有那么糟糕。但是,我会尽力反思和改进。不过,我如何支持您的评论?因为我用谷歌搜索了它,显然应该有一个小三角形,但我找不到
-
一旦您获得更多声望,您就可以为 cmets 投票。无论如何,别担心,我只是想指出一些明显的危险信号。