PKU ACM 1050题为什么我的代码验证都对了,提交却显示runtime error。多谢帮助了 10

#include<iostream>usingnamespacestd;intaa(intm,intk)//计算m+(m-1)+(m-2)······+(m-k+1){i... #include<iostream>
using namespace std;
int aa(int m,int k) //计算m+(m-1)+(m-2)······+(m-k+1)
{
int s=0;
for(int i=0;i<k;i++)
s+=(m-i);
return s;
}

int cc(int *i,int j) //计算一组数中的最大值
{
int max=-999;
for(int m=0;m<j;m++)
if(i[m]>max)max=i[m];
return max;
}
int bb(int *s,int x) //计算一维数组中的连续最大和
{
int max;
int h=aa(x,x);
int *y=new int[h];
for(int i=0;i<x;i++)
{
y[aa(x,i)]=s[i];

for(int j=i+1;j<x;j++)

y[aa(x,i)+j]=y[aa(x,i)+j-1]+s[j];
}
return max=cc(y,h);
delete []y;
}
int main()
{
int a[101][101];
int N;
cin>>N;
int g=aa(N,N);
int*p=new int[N*g];
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
cin>>a[i][j];
for(int i=0;i<N;i++) //记录第i排与第j排之间各列数字之和
{
for(int k=0;k<N;k++)
p[N*aa(N,i)+k]=a[i][k];
if(i==N-1)break;
for(int j=i+1;j<N;j++)
for(int k=0;k<N;k++)
{
p[N*aa(N,i)+(j-i)*N+k]=p[N*aa(N,i)+(j-i-1)*N+k]+a[j][k];
}
}
int *q=new int [g];
int *l=new int[N];
for(int m=0;m<g;m++)
{
for(int n=0;n<N;n++)
{
l[n]=p[m*N+n];
}
q[m]=bb(l,N);
}
cout<<cc(q,g)<<endl;
delete []p;
delete []q;
delete []l;

}
展开
 我来答
yjf_victor
2012-03-16 · TA获得超过3524个赞
知道小有建树答主
回答量:1164
采纳率:100%
帮助的人:413万
展开全部

runtime  error (运行时错误)就是程序运行到一半,程序就崩溃了。

比如说:

①除以零

②数组越界:int a[3]; a[10000000]=10;

③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;

④使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10;

⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000];

建议你测试一下边缘的值,测试一下极端值,看看有没有问题。 

如果你用的是 Windows XP 操作系统,那么Runtime Error 的界面一般如下:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式