wjs505   1년 전

문제와 관련된 질문은 아니지만 저 문제 풀다가 생긴 의문이라 2108로 등록했습니다

pritnf( "%d" , ( ( sum / n ) + 0.5 ) ) ;      -   a

printf( "%d" , ( sum / n ) ) ;    -  b

sum / n 을 반올림해서 출력하라는 의미로 a의 코드를 짰는데

b는 정상적으로 출력되지만, a는 무조건 0이 출력됩니다.

왜 그런건가요?

제가 알고 있는건

int 형은 정수형이고 소숫점은 무조건 버린다

그래서 +0.5를 하면 소수 한자리에서 반올림된다. 정도 알고 있습니다.

stardino99   1년 전

%d는 정수만 입력 받을 수 있고, 0.5더한 값은 실수라서 %d가 입력을 못받아 0으로 나오는거 같습니다.

stardino99   1년 전

출력때 저렇습니다.

wjs505   1년 전

감사합니다 (int)붙여줬을때 정상적으로 출력나오네요 ㅎㅎ

댓글을 작성하려면 로그인해야 합니다.