C 언어로 주택담보대출 상환금 계산하기

CBeginner
지금 연습하기

소개

이 실습에서는 C 프로그래밍을 사용하여 주택담보대출 상환금을 계산하는 방법을 배웁니다. 이 실습에서는 원금, 이자율, 상환 기간을 읽어들인 후 주택담보대출 상환금 계산 공식을 적용하여 월 상환금을 결정하는 필수 단계를 다룹니다. 이 실습을 마치면 사용자 입력을 기반으로 주택담보대출 상환금을 계산할 수 있는 작동 가능한 C 프로그램을 갖추게 될 것입니다.

이 실습은 새로운 C 파일을 생성하는 단계부터 상환금 계산 및 결과 출력까지 전체 과정을 안내합니다. 이 실습을 통해 C 프로그래밍을 사용한 금융 수학 및 이자 계산 기술을 향상시킬 수 있습니다.

원금, 이자율, 상환 횟수 입력

이 단계에서는 주택담보대출 상환금 계산을 위해 필요한 필수 입력값인 원금, 이자율, 상환 횟수를 입력하는 방법을 배웁니다.

먼저, 주택담보대출 상환금 계산기를 위한 새로운 C 파일을 생성해 봅시다.

cd ~/project
nano mortgage_calculator.c

이제 입력 값을 읽어들이는 코드를 작성해 봅시다.

#include <stdio.h>

int main() {
    double principal, rate;
    int num_payments;

    // 원금 입력
    printf("대출 원금을 입력하세요: ");
    scanf("%lf", &principal);

    // 연 이자율 입력 (소수점으로 입력)
    printf("연 이자율을 입력하세요 (소수점으로): ");
    scanf("%lf", &rate);

    // 상환 횟수 입력
    printf("총 상환 횟수를 입력하세요: ");
    scanf("%d", &num_payments);

    // 입력 값 확인을 위해 출력
    printf("\n대출 정보:\n");
    printf("원금: $%.2f\n", principal);
    printf("연 이자율: %.2f%%\n", rate * 100);
    printf("상환 횟수: %d회\n", num_payments);

    return 0;
}

프로그램을 컴파일하고 실행해 봅시다.

gcc mortgage_calculator.c -o mortgage_calculator
./mortgage_calculator

예시 출력:

대출 원금을 입력하세요: 200000
연 이자율을 입력하세요 (소수점으로): 0.05
총 상환 횟수를 입력하세요: 360

대출 정보:
원금: $200000.00
연 이자율: 5.00%
상환 횟수: 360회

코드를 자세히 살펴보면:

  • 원금과 이자율에는 소수점 값을 처리하기 위해 double을 사용합니다.
  • 사용자 입력을 읽어들이기 위해 scanf()를 사용합니다.
  • double 값을 위해 %lf 형식 지정자를 사용합니다.
  • 정수형 상환 횟수를 위해 %d를 사용합니다.
  • 입력 값을 출력하여 제대로 입력되었는지 확인합니다.

상환금 계산 공식 = P*(R*(1+R)^N)/((1+R)^N -1)

이 단계에서는 이전 단계에서 입력받은 값을 사용하여 주택담보대출 상환금 계산 공식을 구현합니다.

기존의 mortgage_calculator.c 파일을 수정해 봅시다.

cd ~/project
nano mortgage_calculator.c

코드를 수정하여 월 상환금을 계산합니다.

#include <stdio.h>
#include <math.h>

double calculate_mortgage_payment(double principal, double rate, int num_payments) {
    // 월 이자율
    double monthly_rate = rate / 12;

    // 주택담보대출 공식을 사용하여 상환금 계산
    double payment = principal *
        (monthly_rate * pow(1 + monthly_rate, num_payments)) /
        (pow(1 + monthly_rate, num_payments) - 1);

    return payment;
}

int main() {
    double principal, rate;
    int num_payments;

    // 원금 입력
    printf("대출 원금을 입력하세요: ");
    scanf("%lf", &principal);

    // 연 이자율 입력 (소수점으로 입력)
    printf("연 이자율을 입력하세요 (소수점으로): ");
    scanf("%lf", &rate);

    // 상환 횟수 입력
    printf("총 상환 횟수를 입력하세요: ");
    scanf("%d", &num_payments);

    // 월 상환금 계산
    double monthly_payment = calculate_mortgage_payment(principal, rate, num_payments);

    // 입력 값과 계산된 상환금 출력
    printf("\n대출 정보:\n");
    printf("원금: $%.2f\n", principal);
    printf("연 이자율: %.2f%%\n", rate * 100);
    printf("상환 횟수: %d회\n", num_payments);
    printf("월 상환금: $%.2f\n", monthly_payment);

    return 0;
}

수학 라이브러리와 함께 프로그램을 컴파일합니다.

gcc mortgage_calculator.c -o mortgage_calculator -lm

프로그램을 실행합니다.

./mortgage_calculator

예시 출력:

대출 원금을 입력하세요: 200000
연 이자율을 입력하세요 (소수점으로): 0.05
총 상환 횟수를 입력하세요: 360

대출 정보:
원금: $200000.00
연 이자율: 5.00%
상환 횟수: 360회
월 상환금: $1073.64

주택담보대출 상환금 공식에 대한 주요 내용:

  • P는 대출 원금입니다.
  • R은 월 이자율 (연 이자율을 12 로 나눈 값) 입니다.
  • N은 총 상환 횟수입니다.
  • pow() 함수는 <math.h>에서 가져와 지수를 계산하는 데 사용됩니다.
  • 수학 라이브러리를 연결하기 위해 -lm 옵션을 사용하여 컴파일합니다.

상환 내역 출력

이 마지막 단계에서는 주택담보대출 계산기를 개선하여 자세한 상환 내역을 보여주고 출력 형식을 개선하여 가독성을 높입니다.

mortgage_calculator.c 파일을 수정하여 더욱 포괄적인 상환 정보를 추가합니다.

cd ~/project
nano mortgage_calculator.c

개선된 상환금 출력으로 코드를 업데이트합니다.

#include <stdio.h>
#include <math.h>

double calculate_mortgage_payment(double principal, double rate, int num_payments) {
    // 월 이자율
    double monthly_rate = rate / 12;

    // 주택담보대출 공식을 사용하여 상환금 계산
    double payment = principal *
        (monthly_rate * pow(1 + monthly_rate, num_payments)) /
        (pow(1 + monthly_rate, num_payments) - 1);

    return payment;
}

void print_payment_details(double principal, double rate, int num_payments, double monthly_payment) {
    double total_payment = monthly_payment * num_payments;
    double total_interest = total_payment - principal;

    printf("\n--- 주택담보대출 상환 내역 ---\n");
    printf("대출 원금:        $%10.2f\n", principal);
    printf("연 이자율:          %10.2f%%\n", rate * 100);
    printf("총 상환 횟수: %d회\n", num_payments);
    printf("월 상환금:       $%10.2f\n", monthly_payment);
    printf("총 상환액:        $%10.2f\n", total_payment);
    printf("총 이자 지급액:   $%10.2f\n", total_interest);
}

int main() {
    double principal, rate;
    int num_payments;

    // 원금 입력
    printf("대출 원금을 입력하세요: ");
    scanf("%lf", &principal);

    // 연 이자율 입력 (소수점으로 입력)
    printf("연 이자율을 입력하세요 (소수점으로): ");
    scanf("%lf", &rate);

    // 상환 횟수 입력
    printf("총 상환 횟수를 입력하세요: ");
    scanf("%d", &num_payments);

    // 월 상환금 계산
    double monthly_payment = calculate_mortgage_payment(principal, rate, num_payments);

    // 자세한 상환 정보 출력
    print_payment_details(principal, rate, num_payments, monthly_payment);

    return 0;
}

프로그램을 컴파일합니다.

gcc mortgage_calculator.c -o mortgage_calculator -lm

프로그램을 실행합니다.

./mortgage_calculator

예시 출력:

대출 원금을 입력하세요: 200000
연 이자율을 입력하세요 (소수점으로): 0.05
총 상환 횟수를 입력하세요: 360

--- 주택담보대출 상환 내역 ---
대출 원금:        $  200000.00
연 이자율:          5.00%
총 상환 횟수: 360회
월 상환금:       $    1073.64
총 상환액:        $  386510.40
총 이자 지급액:   $  186510.40

주요 개선 사항:

  • 형식화된 출력을 위해 새로운 함수 print_payment_details()를 추가했습니다.
  • 총 상환액과 총 이자 지급액을 계산했습니다.
  • 소수점 값을 정렬하기 위해 서식을 사용했습니다.
  • 주택담보대출 세부 정보를 명확하고 읽기 쉽게 제공했습니다.

요약

이 실습에서는 주택담보대출 상환금 계산에 필요한 필수 입력값, 즉 원금, 이자율, 상환 횟수를 읽는 방법을 배웠습니다. 그런 다음 이러한 입력값을 사용하여 주택담보대출 상환금 계산 공식을 구현하여 월 상환금을 계산했습니다. 마지막으로 계산된 상환금을 출력하여 결과를 표시했습니다.

이 실습에서 다룬 주요 단계는 사용자 입력에서 원금, 이자율, 상환 횟수를 읽고 주택담보대출 상환금 공식을 적용하여 월 상환금을 계산하는 것입니다. 이 프로그램은 입력값이 올바르게 캡처되었는지 확인하고 대출 세부 정보와 계산된 상환금의 명확한 출력을 제공합니다.