C언어 매우 초보 ㅜㅜ
무슬
질문 제목 : 출력 값이 달라요질문 요약 :printf(\t\t b/a= %d\n,b/a);
printf(\t\t b/a= %f\n,b/a);왜 이 두 값이 다르게 나오나요??? int 와 float 의 차이란건 알겠는데 이유는 잘모르겠네요...
ㅠㅠㅠ 아 너무 모른다 ㅜㅜ질문 내용 :#include stdio.h
int main()
{
int a,b;
float p,q;
double m,n;
a= 30;
b=20;
p=3.14;
q=4.2;
m= 7.23;
n=1.2;
printf( a= %d 이고 b= %d :\n, a,b);
printf( p= %f 이고 q= %f :\n, p,q);
printf( m= %lf 이고 n=%lf :\n, m,n);
printf(\t\t b/a= %d\n,b/a);
printf(\t\t b/a= %f\n,b/a);
printf(\t\t p-q= %f\n,p-q);
printf(\t\t m*n= %lf\n,m*n);return 0;
}
-
크심
저랑비슷하네요
-
다슬
질문게시판에는 반드시 덧글을 포함해서 돋움체 또는 굴림체를 사용해야 됩니다.
이 폰트로 계속해서 덧글을 쓰면 탈퇴가 됩니다.
폰트 설정은 자신의 블로그에서 추가한 폰트를 전부 지우면 됩니다. -
인1형녀
30/20은 1.5인데 정수니까 뒷부분다 잘라서 1
두번째껀 모르겟움 -
가든
감사합니다.
-
설아
네
-
뿌닝
아 자료 유형이 int 인데 %f로 출력해서 이런 결과가 나오는건가요???
-
연체리
b/a 는 b, a 가 모두 정수이므로 결과도 정수로 나옵니다.
그래서 1 입니다.
정수를 출력할 때는 %d, 실수를 출력할 때는 %f 를 쓰세요.
정수를 %f 로 출력할 때 0 이 나오는 것은 이유가 없습니다. 항상 0 이 나오는 것은 아닙니다.
4 바이트(int) 데이터를 8 바이트(double)로 꺼내서 출력을 하기 때문에
어떤 값이 나올 지는 아무도 모릅니다.
printf 에서는 %f %lf 는 같습니다. float 나 double 모두 -
주인님
소스를 잘못 올렸네요 a= 20 b는 30 이에요
printf(\\\t\\t b/a= %d\\n\ -
미쁘다
결과가 뭐라고 나오나요