Programming/C, C++

[C] 이차방정식 근을 구하는 프로그램

mj73 2022. 4. 24. 11:00

문제:

이차방정식의 계수 a,b,c를 입력받는다.

a가 0이면 근은 -c/b이다.

판별식 d(b^2-4ac)가 음수면 실근은 존재하지 않는다.

실근 구하는 공식은 다음과 같다.

x = { (-b)+- 루트(b^2-4ac) } /2a

 

 

해결방법:

math.h 라이브러리를 사용해서 sqrt를 사용한다.

주의할 점은 계수를 입력받는 변수는 int가 아닌 double을 선언하고 

입력받을때, 출력할때 각각 %lf, %f로 해야한다.

 

 

코드:

#include <stdio.h>
#include  <math.h>
int main() {
  double a, b, c, d, e;
   printf("이차방정식의 계수를 입력하세요(a b c): ");
  scanf("%lf %lf %lf", &a, &b, &c);
  d = b * b - 4.0 * a *c;

  if(a==0){
    printf("근: %f", -c/b);
  }
  else if(d<0){
    printf("실근이 존재하지않습니다.");
  }
  else{
    e = sqrt(d);
    printf("두 개의 근: %f, %f \n", (-b + e) / (2.0*a), (-b - e) / (2.0*a));
  }
  return 0;
}