同样的C++代码,多次运行结果不同
代码如下
#include <iostream>
#include <vector>
using namespace std;
int maxSubSum(const vector<int> &a)
{
int maxSum = 0;
for(int i=0; i<a.size(); i++)
{
for(int j=0; j<=i; j++)
{
int thisSum = 0;
for(int k=j; k< ( j+a.size()-i+1 ); k++)
{
thisSum = thisSum + a[k];
}
if(thisSum>maxSum)
{
maxSum = thisSum;
}
}
}
return maxSum;
}
int main()
{
vector<int> arr{-2, 11, -4, 13, -5, -2};
int maxSum = 0;
maxSum = maxSubSum(arr);
cout << maxSum << endl;
return 0;
}
运行结果及报错内容
使用cmake基于GCC 8.1.0 X86_64-mingw32编译,然后多次运行所得maxSubSum.exe文件,输出结果不同,除了正确答案20外,还会出现不同的随机数乱码。