[問題] GA&define陣列的問題請益
這是我現在的code:
http://goo.gl/nZ7iY
我現在是在做多變數&實數的GA
在此之前 我已經先做完了"單變數實數"的程式了
我把他轉成"雙變數實數"的方法就是改成二維陣列
可是問題就來了 #define 不能宣告陣列
一、導致我的實數計算函式無法運作
我原本的寫法
==========================================================================
//設定變數值上界
#define UpVarLim 16.7691
//設定變數值下界
#define LowVarLim 5
//上下界之差
#define VarsRange (UpVarLim-LowVarLim)
void cal_RealNumber(parent *x)
{
x->Real_number = (((x->dec_value/BaseValue)*VarsRange)+LowVarLim);
}
==========================================================================
改為二維陣列後的寫法
==========================================================================
void cal_RealNumber(parent *x,int y)
{
x->Real_number = (((x->dec_value/BaseValue)*VarsRange[y])+LowVarLim[y]);
}
int main(){
int i;
double UpVarLim[Variable_Number]={2,3}; //設定變數值上界
double LowVarLim[Variable_Number]={4.1,6.7}; //設定變數值下界
double VarsRange[Variable_Number]; //上下界之差
for(i=0;i<Variable_Number;i++)
VarsRange[i]=UpVarLim[i]-LowVarLim[i];
}
==========================================================================
可是就會出現錯誤說 函式cal_RealNumber的VarsRange、LowVarLim是未定義的
請問有甚麼方法可以使用嗎!?
二、另外想再請教一下,有比較好的方式可以有效的改善我的for迴圈使用過多的問題嗎?
因為我C++算自學,之前也只看到指標後就沒再繼續專研,直到老師要求使用C++做東西後
才又開始重新碰C++
所以基礎可能還有點不夠。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.240.249.212
※ 編輯: abab7974 來自: 210.240.236.131 (09/28 09:22)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章