Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 最大子数组和。哪里错了?_C++_Arrays - Fatal编程技术网

C++ 最大子数组和。哪里错了?

C++ 最大子数组和。哪里错了?,c++,arrays,C++,Arrays,我的答案是0。 我在代码中查找最大子数组和的错误是什么 for(k=n;k>0;k--) { for (j=0;j<k;j++) { sum1=0; for(i=j;i<k;i++) { int sum1=sum1+a[i]; } ans =max(sum1,ans); } } cout<<ans;

我的答案是0。 我在代码中查找最大子数组和的错误是什么


    for(k=n;k>0;k--)
    {   
        for (j=0;j<k;j++)
    {  
        sum1=0;
       for(i=j;i<k;i++)
       {
           int sum1=sum1+a[i];
       }
       ans =max(sum1,ans);
    }
    }
    cout<<ans;

对于(k=n;k>0;k--)
{   
对于(j=0;j而言,可能的原因(尽管没有更多的上下文很难判断)如下所示:

int sum1=sum1+a[i];
sum1
前面的
int
关键字创建了一个具有完全相同名称的新变量。这意味着它将在您离开该循环时超出范围。这意味着,您真正想要的
sum1
永远不会被设置

改用这个:

sum1=sum1+a[i];
看看这是否解决了问题。

intsum1=sum1+a[I];
这里,sum1被创建为局部变量,因此当您离开循环时,该变量将消失,您将得到上面为值为0的循环声明的sum1。呈现的代码不是a,但您应该从
int sum1=sum1+a[i];
中删除
int
。该代码是否会提交给“在线法官”编码站点?如果是这样的话,让我警告您,实现三重嵌套循环解决方案肯定会出现“超时”错误。