每次程序运行到这段程序之后就跳出:系统严重错误,遇到问题要关闭!
哪位牛人帮帮忙,看看程序是不是有什么地方写错了!谢谢
type *RVAL = new type [NUM];
type *temp= new type [NUM];
n = 100;
k = 5;
//产生20组随机数组输出结果和时间
for(int i=1;i<=20;i++)
{ for(int j=0; j<n; j++)
{ srand((unsigned)time(NULL));
RVAL[j].value = 30*(rand()/65535.0);
RVAL[j].weight = 30*(rand()/65535.0);
RVAL[j].density = VAL[j].value/VAL[j].weight;
RVAL[j].flag = 0;
}
MergeSort( RVAL,temp,0, n-1 );
begin = clock();
FindValue(VAL,k,n,MAXW ); //找出n个自然数中k个数的所有组合序列
后把最优的序列输出
end = clock();
rtime = end - begin;
cout<<"所用时间为:"<<rtime<<endl;
}
哪位牛人帮帮忙,看看程序是不是有什么地方写错了!谢谢
type *RVAL = new type [NUM];
type *temp= new type [NUM];
n = 100;
k = 5;
//产生20组随机数组输出结果和时间
for(int i=1;i<=20;i++)
{ for(int j=0; j<n; j++)
{ srand((unsigned)time(NULL));
RVAL[j].value = 30*(rand()/65535.0);
RVAL[j].weight = 30*(rand()/65535.0);
RVAL[j].density = VAL[j].value/VAL[j].weight;
RVAL[j].flag = 0;
}
MergeSort( RVAL,temp,0, n-1 );
begin = clock();
FindValue(VAL,k,n,MAXW ); //找出n个自然数中k个数的所有组合序列
后把最优的序列输出
end = clock();
rtime = end - begin;
cout<<"所用时间为:"<<rtime<<endl;
}
种子应该放在循环体外
VAL[j].weight有没有可能是0呢?如果是就会出错的
n = 100;
k = 5;
//产生20组随机数组输出结果和时间
srand((unsigned)time(NULL));
for(int i=1;i<=20;i++)
{type *RVAL = new type [NUM];
type *temp= new type [NUM];
for(int j=0; j<n; j++)
{
RVAL[j].value = 30*(rand()/65535.0);
RVAL[j].weight = 30*(rand()/65535.0);
RVAL[j].density = RVAL[j].value/RVAL[j].weight;
RVAL[j].flag = 0;
}
MergeSort( RVAL,temp,0, n-1 );
begin = clock();
FindValue(RVAL,k,n,MAXW ); //找出n个自然数中k个数的所有组合序列
后把最优的序列输出
end = clock();
rtime = end - begin;
cout<<"所用时间为:"<<rtime<<endl;
delete [] RVAL;
delete [] temp;
}
单步执行到调用FindValue(RVAL,k,n,MAXW ); 的时候跳出这样的错误:
unhandled exception in backpack.exe; 0xc0000005:Access violation
这是怎么回事啊?
type *temp= new type [20][100];
n = 100;
k = 5;
//产生20组随机数组输出结果和时间
for(int i=1;i<=20;i++)
{
for(int j=0; j<n; j++)
{
srand((unsigned)time(NULL));
RVAL[i][j]->value = 30*(rand()/65535.0);
RVAL[i][j]->weight = 30*(rand()/65535.0);
RVAL[i][j]->density = RVAL[i][j]->value/RVAL[i][j]->weight;
RVAL[i][j]->flag = 0;
}
MergeSort( RVAL,temp,0, n-1 );
begin = clock();
FindValue(RVAL,k,n,MAXW ); //找出n个自然数中k个数的所有组合序列
后把最优的序列输出
end = clock();
rtime = end - begin;
cout<<"所用时间为:"<<rtime<<endl;
}