請問一下記憶體配置的問題 |
答題得分者是:jow
|
herro1031
一般會員 發表:4 回覆:5 積分:1 註冊:2007-11-08 發送簡訊給我 |
這是我自己寫的程式
想請問一下 為什麼我把二維陣列m移到 //------代數------- for(nu=1;nu<=gene;nu ) 的上方 在執行過後程式碼會出現藍色的錯誤 但我不知道錯什麼 chrol[j]=m[i][j]; 及 popselect[i]=testresult[i]/fsumfit; 拜託了
附加檔案:474e391d31fba_問題.rar
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
可能出現的錯誤不外乎就是
(1)陣列索引超出範圍 (2)除以零錯誤 另外以for-loop而言, 除非變數nu後續還有特別引用到, 否則 最好限定它的範圍在for-loop之內, 亦即: for(int nu=1; nu<=gene; nu ) 並且如果變數nu會用來作為陣列的索引值, 最好 初值從零開始, 免得加加減減的, 多些不必要的動作, for(int nu=0; nu<gene; nu ) 當然也有例外的時候, 像delphi陣列的宣告, 是不必要為零的.... 個人因為某些原因, 暫時將RAR移除, 以上見解純屬猜測, 僅供參考 ===================引 用 herro1031 文 章=================== 這是我自己寫的程式 想請問一下 為什麼我把二維陣列m移到 //------代數------- for(nu=1;nu<=gene;nu ) 的上方 在執行過後程式碼會出現藍色的錯誤 但我不知道錯什麼 chrol[j]=m[i][j]; 及 popselect[i]=testresult[i]/fsumfit; 拜託了
編輯記錄
jow 重新編輯於 2007-11-29 12:48:20, 註解 無‧
|
herro1031
一般會員 發表:4 回覆:5 積分:1 註冊:2007-11-08 發送簡訊給我 |
我不是很懂你(1)的意思 什麼是陣列索引?!(我真的才碰C++一個多月 所以有些東西不是很懂再說啥)
但我知道(2)我沒有做除以0的動作 然後我照你的方式改成for(int nu=0;nu<=gene;nu ) 還是沒有用>"< 很謝謝大大的幫忙 如果我把m陣列移到for(nu=1;nu<=gene;nu )迴圈內是可以跑的 不懂為啥會這樣 |
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
果然, 就是除以零錯誤
用F5設置中斷點, 一切就都清楚了... float fsumfit=0.0; for(i=0;i sumpopselect[i]=0.0; fsumfit =testresult[i]; //Canvas->TextOutA(800,200,FloatToStr(fsumfit)); } for(i=0;i float a = testresult[i]; float b = fsumfit; // popselect[i]=testresult[i]/fsumfit; popselect[i]=a/b; |
herro1031
一般會員 發表:4 回覆:5 積分:1 註冊:2007-11-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |