C 언어로 유리식 계산하기

CBeginner
지금 연습하기

소개

이 실습에서는 C 프로그래밍에서 유리식을 평가하는 방법을 배웁니다. 이 실습은 분자와 분모 식을 읽고, 0 으로 나누는 경우를 안전하게 처리하여 분수 값을 계산하고, 최종 결과를 출력하는 기본 단계를 다룹니다. 이 실습을 통해 C 를 사용하여 대수식을 다루는 데 필요한 기술을 개발할 수 있습니다.

이 실습은 사용자로부터 분자와 분모 입력을 읽는 과정을 안내하여 값이 프로그램에 제대로 저장되도록 합니다. 그런 다음 분수를 다룰 때 발생하는 일반적인 문제인 0 으로 나누는 경우를 처리하는 개념을 소개하고, 이러한 시나리오를 어떻게 해결하는지 보여줍니다. 마지막으로, 이 실습은 분수 값을 계산하고 최종 결과를 출력하는 방법을 다룹니다.

분자와 분모 식 읽기

이 단계에서는 유리식을 평가하는 데 필수적인 기술인 C 에서 분자와 분모 식을 읽는 방법을 배웁니다.

먼저 유리식 입력을 구현하기 위한 새로운 C 파일을 만듭니다.

cd ~/project
nano rational_expressions.c

이제 분자와 분모를 읽는 다음 코드를 추가합니다.

#include <stdio.h>

int main() {
    int numerator, denominator;

    printf("분자를 입력하세요: ");
    scanf("%d", &numerator);

    printf("분모를 입력하세요: ");
    scanf("%d", &denominator);

    printf("분자: %d\n", numerator);
    printf("분모: %d\n", denominator);

    return 0;
}

프로그램을 컴파일하고 실행합니다.

gcc rational_expressions.c -o rational_expressions
./rational_expressions

예시 출력:

분자를 입력하세요: 10
분모를 입력하세요: 5
분자: 10
분모: 5

코드를 자세히 살펴보겠습니다.

  • scanf()는 사용자로부터 정수 입력을 읽는 데 사용됩니다.
  • %d 형식 지정자는 정수 입력에 사용됩니다.
  • 분자와 분모는 별도의 정수 변수에 저장됩니다.
  • printf()는 입력 값을 표시하는 데 사용됩니다.

분수 값 계산

이 단계에서는 잠재적인 0 으로의 나눗셈을 처리하고 계산을 수행하여 분수 값을 안전하게 계산하는 방법을 배웁니다.

이전의 rational_expressions.c 파일을 업데이트하여 분수 계산을 포함합니다.

cd ~/project
nano rational_expressions.c

분수 값을 계산하도록 코드를 수정합니다.

#include <stdio.h>

int main() {
    int numerator, denominator;
    float fraction_value;

    printf("분자를 입력하세요: ");
    scanf("%d", &numerator);

    printf("분모를 입력하세요: ");
    scanf("%d", &denominator);

    // 0 으로 나누는 경우 확인
    if (denominator == 0) {
        printf("오류: 0 으로 나누는 것은 허용되지 않습니다.\n");
        return 1;
    }

    // 분수 값 계산
    fraction_value = (float)numerator / denominator;

    printf("분자: %d\n", numerator);
    printf("분모: %d\n", denominator);
    printf("분수 값: %.2f\n", fraction_value);

    return 0;
}

프로그램을 컴파일하고 실행합니다.

gcc rational_expressions.c -o rational_expressions
./rational_expressions

예시 출력:

분자를 입력하세요: 10
분모를 입력하세요: 4
분자: 10
분모: 4
분수 값: 2.50

코드의 주요 내용:

  • 런타임 오류를 방지하기 위해 0 으로 나누는 경우를 확인했습니다.
  • 부동소수점 나눗셈을 보장하기 위해 (float) 형 변환을 사용했습니다.
  • %.2f를 사용하여 분수 값을 소수점 둘째 자리까지 표시했습니다.

결과 출력 또는 0 으로 나누기 처리

이 단계에서는 유리식 프로그램을 개선하여 더욱 강력한 오류 처리 및 결과 표현을 제공합니다.

rational_expressions.c 파일을 업데이트하여 출력 및 오류 처리를 개선합니다.

cd ~/project
nano rational_expressions.c

고급 오류 처리 및 결과 서식을 포함하도록 코드를 수정합니다.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int numerator, denominator;

    // 입력 유효성 검사 및 오류 처리
    printf("분자를 입력하세요: ");
    if (scanf("%d", &numerator) != 1) {
        printf("오류: 잘못된 분자 입력입니다.\n");
        return 1;
    }

    printf("분모를 입력하세요: ");
    if (scanf("%d", &denominator) != 1) {
        printf("오류: 잘못된 분모 입력입니다.\n");
        return 1;
    }

    // 포괄적인 0 으로 나누기 처리
    if (denominator == 0) {
        printf("오류: 0 으로 나눌 수 없습니다. 분모는 0 이 아니어야 합니다.\n");
        return 1;
    }

    // 다양한 형식으로 결과 계산 및 출력
    double fraction_value = (double)numerator / denominator;

    printf("\n--- 유리식 결과 ---\n");
    printf("분자:      %d\n", numerator);
    printf("분모:      %d\n", denominator);
    printf("분수 값: %.2f\n", fraction_value);
    printf("정수 결과: %d\n", numerator / denominator);
    printf("나머지:      %d\n", numerator % denominator);

    return 0;
}

프로그램을 컴파일하고 실행합니다.

gcc rational_expressions.c -o rational_expressions
./rational_expressions

예시 출력:

성공적인 계산:

분자를 입력하세요: 10
분모를 입력하세요: 4

--- 유리식 결과 ---
분자:      10
분모:      4
분수 값: 2.50
정수 결과: 2
나머지:      2

0 으로 나누기:

분자를 입력하세요: 10
분모를 입력하세요: 0
오류: 0으로 나눌 수 없습니다. 분모는 0이 아니어야 합니다.

잘못된 입력:

분자를 입력하세요: abc
오류: 잘못된 분자 입력입니다.

주요 개선 사항:

  • scanf() 반환 값을 사용하여 입력 유효성 검사를 추가했습니다.
  • 다양한 시나리오에 대한 오류 메시지를 개선했습니다.
  • 여러 결과 표현을 제공했습니다.
  • 더 정확한 부동소수점 계산을 위해 double을 사용했습니다.

요약

이 실험에서는 C 언어에서 분자와 분모 표현식을 읽는 방법을 배웠습니다. 이는 유리식을 평가하는 데 필수적인 기술입니다. 또한, 잠재적인 0 으로의 나눗셈을 처리하고 계산을 수행하여 분수 값을 안전하게 계산하는 방법을 배웠습니다. 마지막으로, 결과를 출력하거나 0 으로 나누는 경우를 처리하는 기능을 구현했습니다. 이러한 단계는 C 프로그래밍에서 유리식을 다루는 데 견고한 기반을 제공합니다.