[C][math.h] 2차원 방정식 근 구하기

stack overflow/C 2012. 8. 30. 16:04 posted by Allen Park



root_src.cpp






#include <stdio.h>

#include <math.h>



void rooter(double a, double b, double c)

{

double x, pan = (pow(b, 2) - (4 * a * c));


printf("판별식 값 : %lf\n", pan);

if(pan > 0) {

x = (-b + (sqrt(pan))) / (2 * a);

printf("실근 1 : %lf\n", x);

x = (-b - (sqrt(pan))) / (2 * a);

printf("실근 2 : %lf\n", x);

} else if(pan == 0) {

x = (-b + (sqrt(pan))) / (2 * a);

printf("중근 : %lf\n", x);

} else {

double sil, huh;

pan = -pan;

sil = -b / (2 * a);

huh = pan / (2 * a);

printf("허근 1 : %lf + %lfi\n", sil, huh);

printf("허근 2 : %lf - %lfi\n", sil, huh);

}

}



int main()

{

double a, b, c;


while(1) {

printf("2차 방정식의 계수 3개 입력 : ");

scanf("%lf %lf %lf", &a, &b, &c);

rooter(a, b, c);

}


return 0;

}