作者hi801882001 (Melo)
看板C_and_CPP
標題[問題]程式有問題,但不知道哪邊有問題?
時間Wed Dec 16 10:01:23 2009
主要是這兩個迴圈裡頭rand有問題:
for(int i=0;i<Dim;i++)for(int j=0;j<NumParticle;j++)// Modify the velocity
and position of particle
{
v[i][j]=v[i][j]+C1*rand.Next(-1.,1.)*(individual_optimal_x[i][j]-x[i][j])
+C2*rand.Next(-1.,1.)*(social_optimal_x[i]-x[i][j]);
x[i][j]=x[i][j]+v[i][j];
if(x[i][j]>xHi[i])x[i][j]=xHi[i];
if(x[i][j]<xLo[i])x[i][j]=xLo[i];
}
和
for(int i=0;i<Dim;i++)for(int j=0;j<NumParticle;j++)
{
x[i][j]=individual_optimal_x[i][j]=rand.Next(xLo[i],xHi[i]);
v[i][j]=rand.Next(xLo[i]/20.,xHi[i]/20.);
}
編譯的結果是
1>c:\documents and settings\user\my documents\visual studio
2008\projects\pso\pso\pso.cpp(57) : error C2228: '.Next' 的左邊必須有類別/結構
/等位
1>c:\documents and settings\user\my documents\visual studio
2008\projects\pso\pso\pso.cpp(59) : error C2228: '.Next' 的左邊必須有類別/結構
/等位
1>c:\documents and settings\user\my documents\visual studio
2008\projects\pso\pso\pso.cpp(120) : error C2228: '.Next' 的左邊必須有類別/結
構/等位
1>c:\documents and settings\user\my documents\visual studio
2008\projects\pso\pso\pso.cpp(122) : error C2228: '.Next' 的左邊必須有類別/結
構/等位
請問大家要怎麼debug呢??
小弟感激不盡!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.201.37
1F:推 VictorTom:錯誤訊息不是寫的很明確了嗎?? .Next的左邊必須是一個 12/16 10:12
2F:→ VictorTom:class或struct的instance, 你的rand是自己定義的什麼東 12/16 10:12
3F:→ VictorTom:西嗎?? 如果include了stdlib.h或某些其他header, 這可 12/16 10:13
4F:→ VictorTom:是取亂數回來用的函數.... 12/16 10:13
5F:→ hi801882001:include "randgen.h",我是上網去下載這個標頭檔 12/16 10:16
6F:推 ledia:那你有宣告那個 rand 嗎? 又你有 include cstdlib 嗎 12/16 10:19
7F:→ hi801882001:include了,還是不行。還有為何要宣告RAND啊? 12/16 10:24
8F:推 VictorTom:你要使用任何函數或變數之前, 必定要先有它的宣告/定義, 12/16 10:27
9F:→ VictorTom:不然compiler不知道怎麼處理一個不認識(沒被宣告/定義) 12/16 10:27
10F:→ VictorTom:的東西. 12/16 10:27
11F:→ hi801882001:恩恩,我知道了,我在試試吧。謝謝兩位!! 12/16 10:29