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;
}