C 언어로 일차 방정식 (ax + b = 0) 풀기

CBeginner
지금 연습하기

소개

이 실습에서는 C 프로그래밍을 사용하여 ax + b = 0 형태의 일차 방정식을 푸는 방법을 배웁니다. 사용자로부터 계수 a 와 b 를 읽은 후, 계수 a 가 0 이 아닌 경우 공식 x = -b/a를 적용하여 해 x 를 계산합니다. 마지막으로 해를 출력하거나 해가 존재하지 않는다는 것을 표시합니다.

이 실습은 대수식과 C 에서의 구현에 대한 기본 개념을 다룹니다. 이 실습을 마치면 간단한 일차 방정식을 프로그래밍적으로 푸는 방법에 대한 확실한 이해를 얻게 될 것입니다.

계수 a 와 b 읽기

이 단계에서는 C 에서 일차 방정식을 풀기 위한 계수 a 와 b 를 읽는 방법을 배웁니다. 사용자에게 계수를 입력하도록 요청하고 변수에 저장하는 간단한 프로그램을 만들 것입니다.

먼저 프로젝트 디렉토리에 새로운 C 파일을 생성합니다.

cd ~/project
nano linear_equation.c

이제 계수를 읽는 다음 코드를 입력합니다.

#include <stdio.h>

int main() {
    double a, b;

    // 사용자에게 계수 a 를 입력하도록 요청
    printf("계수 a 를 입력하세요 (0 이 아니어야 함): ");
    scanf("%lf", &a);

    // 사용자에게 계수 b 를 입력하도록 요청
    printf("계수 b 를 입력하세요: ");
    scanf("%lf", &b);

    // 입력된 계수 출력
    printf("계수 a: %.2f\n", a);
    printf("계수 b: %.2f\n", b);

    return 0;
}

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

gcc linear_equation.c -o linear_equation
./linear_equation

예시 출력:

계수 a를 입력하세요(0이 아니어야 함): 2
계수 b를 입력하세요: 4
계수 a: 2.00
계수 b: 4.00

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

  • 계수에 대한 소수점 입력을 허용하기 위해 double을 사용합니다.
  • printf()는 사용자에게 입력을 요청하는 데 사용됩니다.
  • scanf()는 사용자의 입력을 읽고 변수 ab에 저장합니다.
  • 입력된 계수를 출력하여 정확하게 읽혔는지 확인합니다.

x = -b/a 계산 (a ≠ 0 확인)

이 단계에서는 이전 프로그램을 수정하여 일차 방정식 ax + b = 0 의 해를 계산하고, 특히 a 가 0 인 경우를 처리하는 데 중점을 둡니다.

이전 파일을 열고 코드를 업데이트합니다.

cd ~/project
nano linear_equation.c

다음 코드로 내용을 바꿉니다.

#include <stdio.h>

int main() {
    double a, b, x;

    // 사용자에게 계수 a 를 입력하도록 요청
    printf("계수 a 를 입력하세요 (0 이 아니어야 함): ");
    scanf("%lf", &a);

    // a 가 0 인지 확인
    if (a == 0) {
        printf("오류: 계수 'a'는 0 일 수 없습니다.\n");
        return 1;
    }

    // 사용자에게 계수 b 를 입력하도록 요청
    printf("계수 b 를 입력하세요: ");
    scanf("%lf", &b);

    // 해 x 계산
    x = -b / a;

    // 해 출력
    printf("방정식 %.2fx + %.2f = 0 의 해:\n", a, b);
    printf("x = %.2f\n", x);

    return 0;
}

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

gcc linear_equation.c -o linear_equation
./linear_equation

유효한 입력에 대한 예시 출력:

계수 a를 입력하세요(0이 아니어야 함): 2
계수 b를 입력하세요: 4
방정식 2.00x + 4.00 = 0의 해:
x = -2.00

잘못된 입력 (a = 0) 에 대한 예시 출력:

계수 a를 입력하세요(0이 아니어야 함): 0
오류: 계수 'a'는 0일 수 없습니다.

이 코드의 주요 내용:

  • 해를 계산하기 전에 a가 0 이 아닌지 확인하는 검사를 추가합니다.
  • a가 0 이면 오류 메시지를 출력하고 프로그램을 종료합니다.
  • x는 공식 x = -b/a를 사용하여 계산합니다.
  • 출력을 소수점 둘째 자리까지 표시하기 위해 %.2f를 사용합니다.

해 출력 또는 해 없음 상태 표시

이 마지막 단계에서는 일차 방정식 해결기를 개선하여 다양한 시나리오를 처리하고 해에 대한 명확한 출력을 제공합니다.

이전 파일을 열고 코드를 업데이트합니다.

cd ~/project
nano linear_equation.c

다음 코드로 내용을 바꿉니다.

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

int main() {
    double a, b, x;

    // 사용자에게 계수 a 를 입력하도록 요청
    printf("계수 a 를 입력하세요: ");
    scanf("%lf", &a);

    // 사용자에게 계수 b 를 입력하도록 요청
    printf("계수 b 를 입력하세요: ");
    scanf("%lf", &b);

    // 다양한 시나리오 확인
    if (a == 0 && b == 0) {
        printf("무한히 많은 해: 모든 실수가 해입니다.\n");
    } else if (a == 0 && b != 0) {
        printf("해 없음: 방정식을 풀 수 없습니다.\n");
    } else {
        // 해 x 계산
        x = -b / a;

        // 해 출력
        printf("방정식: %.2fx + %.2f = 0\n", a, b);
        printf("해: x = %.2f\n", x);
    }

    return 0;
}

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

gcc linear_equation.c -o linear_equation
./linear_equation

예시 출력 시나리오:

시나리오 1 (일반적인 해):

계수 a를 입력하세요: 2
계수 b를 입력하세요: 4
방정식: 2.00x + 4.00 = 0
해: x = -2.00

시나리오 2 (해 없음):

계수 a를 입력하세요: 0
계수 b를 입력하세요: 5
해 없음: 방정식을 풀 수 없습니다.

시나리오 3 (무한히 많은 해):

계수 a를 입력하세요: 0
계수 b를 입력하세요: 0
무한히 많은 해: 모든 실수가 해입니다.

이 버전의 주요 개선 사항:

  • 일차 방정식에 대한 세 가지 다른 시나리오를 처리합니다.
  • 다양한 경우에 대한 명확하고 정보적인 메시지를 제공합니다.
  • 해의 유형을 결정하기 위해 정확한 수학적 논리를 사용합니다.

요약

이 실습에서는 C 언어로 일차 방정식을 풀기 위해 계수 a 와 b 를 읽는 방법을 배웠습니다. 사용자에게 계수를 입력하도록 요청하고 변수에 저장하는 간단한 프로그램을 만들었습니다. 특히 a 가 0 인 경우를 처리하는 데 중점을 두어 일차 방정식 ax + b = 0 의 해를 계산하는 방법도 배웠습니다. 프로그램은 a 가 0 인지 확인하고, 0 이면 오류 메시지를 표시하고, 그렇지 않으면 해 x = -b/a를 계산하여 출력합니다.