2017-12-09 9 views
-1

私はsometingをテストしていましたが、浮動小数点型のベクトルを作成し、そのベクトルに1/iの値を入れましたが、値を読み取っている間は出力は浮動小数点ではなく整数として出力されます。pushing_backがベクトルに浮動すると、ゼロになるのはなぜですか?

#include <stdio.h> 
#include <vector> 
#include <iterator> 

int main(int argc, char const *argv[]) 
{ 
    std::vector<float> testVec; 
    for (int i = 1; i < 5; ++i) 
    { 
     float v = 1/i; 
     testVec.push_back(v); 
    } 

    std::vector<float>::iterator it = testVec.begin(); 
    for (; it!=testVec.end(); ++it) 
    { 
     printf("The value of the iterator: %f, *it); 
    } 
    return 0; 
} 

この問題は何ですか?それはイテレータと関連していますか?私はそれらをあまり経験していないことを意味します。

+2

iが整数型である '1/i'は、**整数演算**です。 –

+0

'1'は' int'、 'i'は' int'なので '1/i'は' int'です。 – tkausl

+0

@AditiRawatああ、そうです。指摘してくれてありがとう。 – onurcanbektas

答えて

1

1/iここで、iは整数タイプで、整数演算であり、整数として出力されます。
1.0の代わりに1がお手伝いします。 :)

関連する問題