2015-10-16 47 views
-3

這是我的代碼的一部分,它使用類cosmology.xi_DM計算xi。 我對C++很新,所以請耐心等待!在循環內打印一個變量,C++

double redshift = 0.75; 
    string method = "CAMB"; 
    vector<double> r = {1., 2.}; 

    double xi = 0.; 
    for (int i=0; i<r.size(); i++) 
    xi = cosmology.xi_DM(r[i], method, redshift); 

    cout << "xi_DM(z=" << redshift << ") = " << xi << endl; 

然而,當我print它,我只得到xi價值爲r = 2.。它不會爲r = 1.打印xi這是爲什麼呢?

+1

你'cout'是* *之外的'for'循環。如果你希望它*在*裏面,而代碼塊周圍的'{'和'}'要在'for'循環中。 – crashmstr

+0

@MrLister:謝謝你指出! – user3397243

+2

你已經習慣了Python,不是嗎? –

回答

1

你已經錯過了括號:

for (int i=0; i<r.size(); i++) 
{ 
    xi = cosmology.xi_DM(r[i], method, redshift); 

    cout << "xi_DM(z=" << redshift << ") = " << xi << endl; 
} 
1

cout << ...指令在循環。

試試這個:

for (int i=0; i<r.size(); i++) 
{ 
    xi = cosmology.xi_DM(r[i], method, redshift); 

    cout << "xi_DM(z=" << redshift << ") = " << xi << endl; 
}