[問題] GA&define陣列的問題請益

看板C_and_CPP (C/C++)作者 (幻滅)時間13年前 (2012/09/26 18:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
這是我現在的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)
文章代碼(AID): #1GOj9z7Z (C_and_CPP)
文章代碼(AID): #1GOj9z7Z (C_and_CPP)