杭电acm 1003题,为什么总是提示Runtime Error(ACCESS_VIOLATION),我测试结果没问题啊!求大神指教!

#include <stdio.h>#include <iostream>
using namespace std;
typedef struct
{
int maxSum;
int startIndex;
int endIndex;
}RESULT;

int Func(int array[], int n, RESULT *Result);
int main()
{
int n, i=0, k=0, j=0;
cin >> n;
int **pp = new int *[n];
RESULT *Result = new RESULT[n];
RESULT tmpRest;

for (i=0; i<n; i++)
{
cin >> k;
pp[i] = new int[k];
pp[i][0] = k;
for (j=1; j<k+1; j++)
{
cin >> pp[i][j];
}
}

//输出
for (int i=0; i<n; i++)
{
Func(pp[i], pp[i][0]+1, &tmpRest);
cout << "Case " << i+1 << ":" <<endl;
cout << tmpRest.maxSum <<" "<< tmpRest.startIndex <<" "<< tmpRest.endIndex << endl;
cout << endl;
}

free(pp); free(Result);
return 0;}
int Func(int array[], int n, RESULT *Result)
{
int i=0, j=0, k=0;
Result->maxSum =array[1];
Result->startIndex = 1;
Result->endIndex = 1;
RESULT tmpRest;

for (i=1; i<n; i++)
{
tmpRest.maxSum = 0;
tmpRest.startIndex = i;
tmpRest.endIndex = i;

for(j=i; j<n; j++)
{
tmpRest.maxSum = tmpRest.maxSum + array[j];
if (tmpRest.maxSum > Result->maxSum)
{
Result->maxSum = tmpRest.maxSum;
Result->endIndex = j;
}
if(j<n-1)
{
if (array[j] < 0)
j++;
}
}
}
return 0;
}

Runtime Error一般是数组越界, 可能你数组定义小了
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-26
运行时错误,你看看是不是有超过数组。
第2个回答  2012-09-28
耳机的问题

...Error(ACCESS_VIOLATION),我测试结果没问题啊!求大神指教!
Runtime Error一般是数组越界, 可能你数组定义小了

杭电acm1003为什么都过不了,显示Runtime Error(ACCESS_VIOLATION)
你的 mm 没有赋初值,所以会Runtime Error 还有就是 while的循环结束条件不足,如果到最后 m还是没有==0你就错了 这是ac的代码 include

杭电acm总是Runtime Error (ACCESS_VIOLATION)
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); *...

杭电acm 一直显示Runtime Error (ACCESS_VIOLATION) http:\/\/acm.hdu...
VC++ 6.0 运行窗口是可以复制粘贴的。。先复制题中的测试数据。点 运行窗口的最左上角—> 编辑—> 粘贴。。OK了。。貌似我以前可以切换输入法的,现在不知道怎么弄不出来了。。。

杭电acm2023,Runtime Error (ACCESS_VIOLATION)?
即 a[51][6] \/\/ 另外一个问题就是 每次循环后count1 没有重新置零 \/\/***#include <stdio.h>int main(){ int n, m, i, j, count1, count2; double a[51][6]; \/\/后面程序访问到 n 所以应该定义为a[51][6] while(scanf("%d%d", &n, &m) != EOF) {...

...杭电ACM上就显示runtime,error ACCESS_VIOLATION,求大神讲解_百度知 ...
char string_color[1000][15];char *string_num_max1[1000];可能是堆栈大小的问题,你这些变量都是在堆栈里分配的,换成动态分配试试.

...但是提交后提示Runtime Error (ACCESS_VIOLATION)
这题可以用二分求幂来做的。构造一个矩阵每次都是一个矩阵的转移。然后可以用二分。当然也是有周期的。最大的周期是49 因为这些数字都是要7的范围内 如果有两个数字连续一样的话,后面的数字就会和前面重复 f[i]==f[i+k]&&f[i+1]==f[i+1+k]这样的话后面就会重复的 \/\/此题是一个很...

...1002为什么总是 Runtime Error(ACCESS_VIOLATION)?
lena : lenb) + 1; int len = maxlen; char *sum = (char *) malloc(sizeof(maxlen + 1)); memset((void *)sum, '0', maxlen); sum[maxlen--] = '\\0'; lena--; lenb--; while (lena >= 0 && lenb >= 0) { ret = a[lena--] - '0...

做杭电acm题目时提交的代码出现ACCESS_VIOLATION错误。
ACCESS_VIOLATION Your program tried to read from or write to a address for which it does not have the appropriate access.您的程序想从一些非法的地址空间读取或向其中写入内容。一般例如指针、数组下标越界都会造成这个错误的。还有个新手常犯的错误会造成这个提示:int a;scanf("%d",a);应该...

...运行错误是Runtime Error(ACCESS_VIOLATION), 这是么意思?不知道哪...
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...

相似回答