포인터를 이용해서 최소공배수 최대공약수 두 반환값을 반환하는 함수인데 자꾸 에러가 뜹니다 ㅠㅠ

kykk0010의 이미지

#include

void get_lcm_gcd(int x, int y, int *p_lcm, int *p_gcd);

int main(void)
{
int x,y;
int a,b;

printf("Input the x :");
scanf("%d",&x);

printf("Input the y :");
scanf("%d",&y);

get_lcm_gcd(x,y,&a,&b);

printf("%d,%d",a,b);

return 0;

}

void get_lcm_gcd(int x, int y, int *p_lcm, int *p_gcd) \\최대공약수 최소공배수 함수 구하기
{
int r;

while(y!=0)
{
r = x%y;
x = y;
y = r;

}

*p_gcd = r;
*p_lcm = (x*y)/r;

}

디버깅은 되는데 계속해서 실행했을 때 에러가 뜹니다 ㅠㅠ 어떻게 된건지 제 머리로는 도저히 ㅠㅠ

익명 사용자의 이미지

x%y 가 0일때는 *p_lcm에 저장되는 값이 division by 0 가 되어 에러가 나지 않을까요?

kykk0010의 이미지

알고보면 쉬운걸 ㅠㅠㅠ 감사합니다!!