C友们帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/14 10:55:14
C友们帮帮忙
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
P[j]=rand()%8+1;
}
traP=rand()%8+1;
P[tryX][tryY]=traP; //对P[tryX][tryY]赋一个新值,这一部分不用管
----------------------------------------------------------------------------------------
if(sum1>sum2)
{
traE=sum1-sum2;
w=exp(-3*traE);
n=rand()/32767.0;
}
while (w<=n)
P[tryX][tryY]=memP;]

----------------------------------------------------------------

以上是我写的一部分程序,但是总是出不来结果

主要思想:
traE=sum1-sum2
当traE<=0,P[tryX][tryY]这个值可以被取代
当traE>0,则w=exp(-3*traE)大于随机数n也能被取代
其他情况,P[tryX][tryY]返回原值memP

最后以数组的形式输出结果

我知道是这部分有问题,但就是找不出来

兄弟,你的数组是二维的吧,可是呢你赋值的时候是怎么做的?
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
P[i][j]=rand()%8+1;
}
这么改后再试试看

设断点,单步调试,很容易就能找出问题的根源。