2016-10-06 2 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]. 평균치로 저장되는 값은 90.28이어야하지만 대신 90입니다.

무엇을 놓쳤습니까? 내가 디버거를 사용하여 시도하고 그것이 단지 나에게 90.00을 보여줍니다 나 90 (소수 부분이없는 경우)

setprecision를 사용하여 표시하지 나는 또한 피사체가 떠에 대한 데이터 유형을 변경 시도, 그것이 일부러 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) 결과를 제공 할 것입니다.