이거 형변환 왜 안될까요?
조회수 482회
int c, f;
f=(int)((9.0/5)*c+32);
for(c=0;c<=50;c+=10)
printf("c=%d f=%d\n",c,f);
return0;
이렇게 짯는데 9.0/5가 계속 0으로 나오네요
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
-
int c, f; f=(int)((9.0/5)*c+32); for(c=0;c<=50;c+=10) printf("c=%d f=%d\n",c,f); return0;
우선 f에 값을 대입할때 c는 사용자가 초기화되지 않은 상태이므로 c의 값이 기본 0이라 printf문에서 f는 무조건 32이 나오겠네요.
int c{}, f{}; for(c=0;c<=50;c+=10) { f=(int)((9.0/5)*c+32); printf("c=%d f=%d\n",c,f); }
그리고 %d는 int형태의 10진수를 받습니다. 그러면 자연스럽게 소수점은 잘리므로 소수점을 표현하고 싶다면 %f를 쓰세요.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력