• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

9분 45초 경 질문

24.02.15 17:20 작성 조회수 66

1

처음에 변수로 잡은 것이 double이면 scanf에 %d를 입력하면 왜 안 되는 건가요? 왜 %d가 아니라 %lf로 입력을 했는지 잘 이해가 가지 않습니다. 혼자서 %d 넣고 해보니까 에러가 떠요.

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2024.02.15

안녕하세요, 질문&답변 도우미 Soobak 입니다.

 

scanf() 함수는 형식 지정자와 변수의 자료형이 일치해야 합니다.

 

double d = 0.0; 으로 선언된 변수 d 의 자료형은 double 이며,
double 자료형의 변수에 값을 입력받기 위해서는 %lf 형식 지정자를 사용해야 합니다.
(lflong float 을 의미하며, double 자료형을 위한 형식 지정자입니다.)

 

%d 형식지정자는 int 자료형을 위한 형식 지정자이기 때문에, 형식 지정자 불일치가 발생하게 됩니다.

 

질문해주신 강의의 0:53 부분의 표와 교수님의 설명을 참고해보시면 이해에 도움이 되실 것 같습니다.