矩阵最大和的问题求指点
#include<iostream>
using namespace std;
int Matrix[100][100];
int N;
int temp[100];
int sum(int * a)
{
int max,b;
max=-(1<<30);b=a[0];
for(int i=1;i<N;i++)
{
if(b>0)
b=b+a[i];
else
b=a[i];
if(b>max)
max=b;
}
return max;
}
int main()
{
int MAX,num;
cin>>N;
//int * temp=new int [N];
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
cin>>Matrix[i][j];
MAX=-(1<<30);
for(int i=0;i<N;i++)
{
memset(temp,0,sizeof(temp));
for(int j=i;j<N;j++)
{
for(int k=0;k<N;k++)
temp[k]+=Matrix[j][k];
num=sum(temp);
if(num>MAX)
MAX=num;
}
}
cout<<MAX<<endl;
return 0;
}
当我用 new 来定义 temp 的时候,输出是错误的,
当用全局变量来定义 temp 时,输出正确,
求解释为什么