코린이 간단한 코드 오류 하나 여쭙겠습니다

간단한 코드인데 두 정수를 입력받게끔 해 놓았는데 첫번째 정수를 입력하면 에러가 뜨네요. 코드오류가 아니라 debug assertion failed 라고 뜨면서 런타임 에러가 뜨구요. 제가 이걸 짤때 생각했던 오류가 버퍼에 엔터가 남아서 생기는 버그정도였는데… 생각한거하고 아얘다르게 되어서 당황스럽네요 알려주시면 감사드리겠습니다.!!!

int main(void)
{

	printf("두 정수를 입력하세요");
	double a = 0;
	double b = 0;
	scanf_s("%f", a);
	getchar();
	scanf_s("%f", b);
	printf("avg =");
	printf("%f", (a + b) / 2);
    return 0;
}

scanf("%d", &a);

:smiley:

1 Like
1 Like

감사합니다 ㅠㅠ 엠퍼샌드를 안썼다니 너무 부끄럽네요 열심히 공부해서 이런거 안물어보게 할게요

갑사합니다 ㅠㅠ 열심히 공부해서 이런거 안물어보도록 하겠습니다.!

근데 왜 double이쥬??

1 Like

책에서 예제에 두 정수를 입력받게끔이라고 printf하고 double형으로 출력하라고 나와있어서 질문글을 헷갈리게 썼네요 별 의미 없어요 !!!
그리고 scanf쓸때 %f로 하면 주소에 값이 안들어가고 %lf를 사용하면 값이 제대로 입력이 되는데 왜 그런 건지 아시나요???

float%f
double%lf으로 해야 합니다.

넵넵 감사합니다! 뒤에 printf에 %f를 쓴것은 또 출력이 잘되서 %f와 %lf모두 double형에서 잘 작동하는줄 알았는데 아니였군요… 감사합니다. 좋은하루 되세요!