问题描述
- 求教!简单的ACM数塔问题,出现Runtime Error(ACCESS_VIOLATION)
-
以下是代码,自己编译运行是对的#include<stdio.h> int max(int a,int b) { if(a>b) return a; else return b; } int main() { int c,n,i,j; int a[100][100]; int b[100][100]; scanf("%d",&c); while(c--) { scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) { scanf("%d",&a[i][j]); } } for(j=1;j<=n;j++) { b[n][j]=a[n][j]; } for(i=n-1;i>=1;i--) { for(j=1;j<=i;j++) { b[i][j]=a[i][j]+max(b[i+1][j],b[i+1][j+1]); } } } printf("%dn",b[1][1]); return 0; }
谢谢!
解决方案
你应该根据n的值,用malloc/new动态分配下空间。
解决方案二:
http://www.cnblogs.com/chuanlong/archive/2012/11/13/2767400.html
http://blog.csdn.net/xujinsmile/article/details/7840840
解决方案三:
那是你的数据范围没有超范围,而后台的测试数据比你的范围要大所以就会RE
解决方案四:
是不是你的数组开小了
时间: 2024-09-30 12:54:58