2015-10-16 2 views
-3

Это часть моего кода, который вычисляет xi с использованием класса cosmology.xi_DM. Я очень новичок в 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.. Он не печатает xi для r = 1.. Почему это так?

+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; 
} 
Смежные вопросы