프로그래밍 언어/C언어

[실전C프로그래밍] 9장 포인터_9

선잠 2022. 12. 22. 03:19

실전 C프로그래밍(나중채 외) 교재를 바탕으로 학습하고, 해결한 실습문제의 답을 기록합니다.

(정답이 아니기에 오류 지적이나 피드백을 환영함)

 

저작권으로 인해 자세한 문제는 생략합니다.

 

Q. 두 정수를 입력받아, 최대 공약수와 최소 공배수를 포인터를 사용하여 전달

#include <stdio.h>

void gcdlcm (int a, int b, int *gcd, int *lcm);

int main() {
    int a, b, g, l;
    
    scanf("%d %d", &a, &b);
    
    gcdlcm(a, b, &g, &l);
    
    printf("%d %d", g, l);
    
    return 0;
}

void gcdlcm (int a, int b, int *gcd, int *lcm) {
    int g = 0;
    
    for (g = 1; g <= a && g <= b; g++) {
    	if (a % g == 0 && b % g == 0) *gcd = g;
    }
    
    *lcm = (a * b) / *gcd;
}