我想要创建一个数组,其中每个元素总结一个函数“CosineEffect”的结果。例如,如果"heliostatNumber“为3,则”余弦“数组中的每个元素都应该是funcion"CosineEffect”的三个结果的总和。
但是当我把结果打印出来时,它们似乎没有加起来。相反,每个元素只是一个结果的值,而不是三个结果的值。
float Cosine[10];
for(int i=0;i<11;i++)
{
float sum=0;
for(int j=0; j<heliostatNumber;j++)
{
Cosine[i]=sum+CosineEffect(SunRay[i], ReflectedRay[j]);
}
cout<<"Cosine Effect = "<<Cosine[i]<<endl;
}发布于 2015-05-11 02:13:05
试着检查代码,并在每个步骤中考虑每个变量的值。
特别是,看看sum。
float sum = 0;
for(int j=0; j < heliostatNumber; j++)
{
sum = sum + CosineEffect(SunRay[i], ReflectedRay[j]);
}
Cosine[i] = sum;发布于 2015-05-11 02:14:19
如果没有剩下的代码,很难分辨出确切的问题,但正如我所看到的,问题在这一行中。
Cosine[i]=sum+CosineEffect(SunRay[i], ReflectedRay[j])它应该是
Cosine[i]+=CosineEffect(SunRay[i], ReflectedRay[j])代码中不修改sum变量,它始终是0。
如果您需要在代码中的其他地方使用sum,您应该这样做
sum += CosineEffect(SunRay[i], ReflectedRay[j]);
Cosine[i] = sum;另外,for循环中的条件应该是10而不是11,因为您有10个元素的数组。
https://stackoverflow.com/questions/30158642
复制相似问题