相同的测试用例显示不同的答案

Posted

技术标签:

【中文标题】相同的测试用例显示不同的答案【英文标题】:Same test cases showing different answer 【发布时间】:2021-11-14 20:09:45 【问题描述】:

我对@9​​87654321@有疑问:

我的代码:

void miniMaxSum(vector<int> arr) 
    
sort(arr.begin(), arr.end()); 
int sum=0;
for(int i=0; i<5; i++)
sum += arr[i];
cout<<sum-arr[4]<<" "<<sum-arr[0]<<endl;   


换句话说:

void miniMaxSum(vector<int> arr) 
    
sort(arr.begin(), arr.end()); 

int min=0;
for(int i=0; i<4; i++)
min += arr[i];
cout<<min<<" ";

int max=0;
for(int i=1; i<5; i++)
max += arr[i];
cout<<max<<endl;
    

这些代码对于示例数据 1 和 2 运行成功,但是当我提交代码时,这些测试用例也显示为错误输出。

你能提示一下这段代码哪里错了吗?

【问题讨论】:

【参考方案1】:

根据给定的问题将int更改为long long

【讨论】:

【参考方案2】:

int 是一个 32 位整数,问题提到答案可能大于此。您需要为向量和最大变量使用 64 位整数 (int64_t)。

您还应该切换到按引用而不是按值传递 void miniMaxSum(vector&lt;int&gt; arr) 将复制整个数组,void miniMaxSum(const vector&lt;int&gt;&amp; arr) 将传入对数组的只读引用而不复制它。

【讨论】:

函数通过排序来改变向量。只是让参数列表让你复制是最简单的,而 const ref 根本不起作用......

以上是关于相同的测试用例显示不同的答案的主要内容,如果未能解决你的问题,请参考以下文章

网站测试用例

系统测试与验收测试 - 测试用例的差异[关闭]

集成测试测什么?

TFS 2015-使用不同配置重复测试用例-看不到配置选项

GUI自动化测试中优化测试用例思维方法

testNG 多线程测试(xml文件实现)