우선 첫 글이 질문이라 죄송합니다...
다름아니라 c언어를 공부중인데, 2차방정식에서 근의 공식을 사용해서 실근, 허근, 중근을 구하는 프로그램을 만들었고, 추가적으로 근을 구하는 프로그램으로 발전시키고 싶어서 코드를 바꿨는데, 원래는 제대로 실근, 허근, 중근으로 표현되던게 바꾸고 나니까 이상하게 결과도출이 이상하게 되더라구요...
밑에 코드를 첨부하니, 조언해주시면 감사하겠습니다.
/*이차방정식 근 분류 프로그램*/
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main(void)
{
char a, b, c, d, e, f, g, h;//a, b, c는 각각 이차방정식의 계수들, d는 근판별식값으로, e는 d의 제곱근, f, g는 실근 2개일때의 두 실근, g는 중근일때의 중근값으로 설정
printf("ax^2+bx+c라는 이차방정식이 있습니다. a에 들어갈 숫자를 입력해주세요: ");//a 입력 안내메세지
scanf("%d", &a);//a 저장
printf("b를 입력해주세요: ");//b 입력 안내메세지
scanf("%d", &b);//b저장
printf("c를 입력해주세요: ");//c 입력 안내메세지
scanf("%d", &c);//c저장
d = (b * b) - (4 * a * c);//d를 근판별식의 계산값으로 지정
d = e * e;//e를 루트없이 제곱근으로 설정
f = (-b + e) / (2 * a);//f를 하나의 실근으로 계산
g = (-b - e) / (2 * a);//g를 또 다른 하나의 실근으로 계산
h = (-b) / (2 * a);//h를 중근으로 계산
if (d > 0)//d가 0보다 크면 실근 2개를 가진다
printf("위 이차방정식은 실근 2개를 가지고 있습니다.두 실근은 %lf와 %lf 입니다.", &f, &g);//2개의 실근을 가진 사실과 두 실근값을 도출
else if (d < 0)//if 중첩문을 사용해 d가 0일때 중근임을 표현한다
printf("위 이차방정식은 허근을 가지고 있습니다.");
else//위 식에서 제외되는 것은 d=0만 있기 때문에 if 중첩문 없이 else로 끝내도 된다.
printf("위 이차방정식은 중근인 %lf를 가지고 있습니다", &h);//중근인 사실과 중근값 도출
return 0;
}
+

이해가 편하게 사진도 첨부합니다...