(C++)변수와 형변환의 중요성

취침 전, 과제를 깔끔히 보완하고 자려했다. 어렵지 않게 한 10분? 정도 시간을 쓸 생각이었는데
이상한 부분에서 막혀서 취침시간이 늦어졌다.
float aver=0, sum=0;
for(int j=0; j<i; j++)
sum+=scores[j];
aver = sum / i ;
cout << "\tAverage: " << aver << endl;

*********************************************************
       

int sum = 0; float flo= 0;
for (int j = 0; j < maxSize; j++)
sum += scores[j];
flo = sum / i;
cout << flo << endl;

아래가 내가 작성한 코드이다. 두 정수합의 평균이 42.5가 나와야하나. 별 수를 다 써도 42.0만 나온다.
무슨 차이인지 보이는가?

int sum;

int

int !!!!!!!!

그렇다. sum을 int 형으로 처음에 초기화 하였으니, 평균을 구했을 때,
float 형변환이 일어나 정수로 표현된 것이었다. ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
다시는 이런 실수를 하지 말도록 하자 ㅠㅠ

좋은 웹페이지 즐겨찾기