2016-10-06 8 views
-1
struct score 
{ 
    int math; 
    int science; 
    int english; 
    int history; 
    int mapeh; 
    int tle; 
    int filipino; 
}; 

struct info 
{ 
    string firstName; 
    string lastName; 
    score grades; 
    float average; 
    int studentnum; 
    int rank; 
    bool remark; 
}; 

が格納されていない私のコードは、被験者に格納された値があるフロート変数は、ここでは浮動値

です:

それぞれ
85 87 89 90 94 92 95 

vector<info> stud; 

for(int i=0; i<stud.size(); i++) 
{ 
stud[i].average= (stud[i].grades.math 
        +stud[i].grades.science 
        +stud[i].grades.english 
        +stud[i].grades.history 
        +stud[i].grades.mapeh 
        +stud[i].grades.tle 
        +stud[i].grades.filipino)/7; 
} 

値スタッド[i] .averageに格納されている値は90.28でなければならず、代わりに90になります。

何が欠けていますか?私は、デバッガを使用してみましたが、それはそれだけで私に90.00が表示されます私の90(なし小数)

てSetPrecisionを使用してを示していない私はまた、被験者がフロートするためのデータ型を変更しようとしている、そしてそれはdidntの90.28

作業。

ありがとうございました。

+0

整数を整数で割った値は整数になります。あなたがしているのは、整数を合計してから7で割ることです。これは整数 - 結果 - 整数です。 – PaulMcKenzie

+0

あなたの成績オブジェクトはすべて整数です。これらの整数の合計を、整数を与える別の整数で割ります。 '7'を' 7.0'に変更してみてください。 – Jvinniec

+0

を7.0で割ると、私は –

答えて

0

これに変更してみてください:

stud[i].average= (stud[i].grades.math 
        +stud[i].grades.science 
        +stud[i].grades.english 
        +stud[i].grades.history 
        +stud[i].grades.mapeh 
        +stud[i].grades.tle 
        +stud[i].grades.filipino)/7.0; 

(int)/(float)はあなたに(float)結果が得られます。

関連する問題