|
#include<stdio.h>
#include<math.h>
main()
{
float a,b,c,sum,sum1,sum2; /*변수의 갯수와 입력되는 수를 실수로 지정*/
printf("이차방정식계산하는 프로그램입니다.\n"); /*프로그램 설명*/
printf("a(x*x) + bx + c = 0\n");
printf("위에 a,b,c의 값을 넣으시오.\n\n");
scanf("%f%f%f",&a,&b,&c); /*이차방정식에 쓰일 변수 입력*/
if (a == 0 && b == 0) printf("해를 구할 수 없습니다.\n"); /*변수 a와 b 두개가 0일때 오류메세지 출력*/
else /*a변수 와 b 두가중 한개라도 틀리면 else구문으로 이동*/
if (a == 0) /*변수 a는 0이고 b가 0이 아닐때 */
{
printf("이것은 선형 방정식이므로 해는 하나입니다. 해는 %f입니다.\n", -c / b); /*해는 하나라고 출력한후 해의 값을 출력한다.*/
}
else
{
sum = pow(b,2.0) - 4 * a * c; /*결정식을 구하는 공식*/
sum = sqrt(sum);
sum1 = (-b + sum) / 2 * a; /*첫번째 근의 값*/
sum2 = (-b - sum) / 2 * a; /*두번째 근의 값*/
if (sum1 < 0) printf("이 식은 실근이 없습니다.\n"); /*결정식이 음수이면 실근이 없다는 것을 출력*/
else if (sum1 == 0) printf("이 식은 두 근이 같은 값입니다. 근의 값은 %.2f입니다.\n",sum1); /*결정값이 0이면 두개의 근은 같은 값이다.*/
else printf("첫번째 근은 %.2f이고, 두번째 근은 %.2f입니다.\n",sum1,sum2);
}
}
제가 배우는 책에 나와있는 내용인데.. 제가 책에서 제시하는 것하고 이차방정식 계산법만 보구
짠거거든염.. 근데 프로그램을 run시키고나서 숫자를 입력하고나면 sqrt: DOMAIN error랑
Floating Point: Square Root of Negative Number라구 떠염. 글구 이넘을 컴파일 하면 35: Function should return a value라구 뜨는데.. 컴파일된 프로그램을 실행하면 실행이 되기는 되는데 영 찜찜해서염.. 왜 그런지 아시는 분들은 꼭 답변을 부탁드릴께염. 꼭에염.. 그럼 이만..
(--)(__)(--).. 꾸벅~
|