这么修改数组的值,错在哪儿
这样修改数组的值,错在哪儿
我有一个浮点类型的数组,想通过拖动滑块使它的每个元素的值成比例增减。我是这样做的:
结果发现拖动滑块时,数组中的值一直在飚升,并不像我想要的那样成比例增长。我错在哪儿?请高手指点,谢谢!
------解决方案--------------------
你拖动一次滑块,就调用了一次这个函数,函数里面又是一个循环,当然是飙升的。。。相当于你拖动一次,就乘了十次scale了。。
------解决方案--------------------
添加一个数组吧.
------解决方案--------------------
就是这个原因了。
按照你的做法,比如,第一次你乘了10,第二次你再乘10,那总共就乘了100了。
而根据你的意思,你是想要根据拖动条的数值缩放,那么就是7楼的代码了
我有一个浮点类型的数组,想通过拖动滑块使它的每个元素的值成比例增减。我是这样做的:
float fV[10] = { ............} ;
void ModifV( float Scale )
{
for ( int i = 0 ; i < 10 ; i++)
{
float V0= fV[i]*Scale ;
fV[i] = V0 ;
}
}
结果发现拖动滑块时,数组中的值一直在飚升,并不像我想要的那样成比例增长。我错在哪儿?请高手指点,谢谢!
------解决方案--------------------
你拖动一次滑块,就调用了一次这个函数,函数里面又是一个循环,当然是飙升的。。。相当于你拖动一次,就乘了十次scale了。。
------解决方案--------------------
添加一个数组吧.
float fV[10] = { ............} ; //始终改变这个数组各元素值,让他随着滑块改变.
float fV_back[10] = { ............} ; //这个数组各元素值,始终保持不变.
void ModifV( float Scale ){
for ( int i = 0 ; i < 10 ; i++)
{
fV[i]= fV_back[i]*Scale ;
}
}
------解决方案--------------------
就是这个原因了。
按照你的做法,比如,第一次你乘了10,第二次你再乘10,那总共就乘了100了。
而根据你的意思,你是想要根据拖动条的数值缩放,那么就是7楼的代码了