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;
}
存储在stud [i] .average中的值应该是90.28,而只是90.
我错过了什么?我尝试使用调试器,它显示我90(无小数)使用setprecision它只会显示90.00而不是90.28
我也尝试将主题的数据类型更改为浮动,但它没有用。
谢谢你。答案 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)
结果。