Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2332] Re: 근이 허수가 나올 때의 처리가 안 되어 있네요.
김백일.cedar [cedar] 1059 읽음    2003-04-09 11:15
사공욱님의 프로그램의 문제점을 하나 더 지적하자면...
sqrt() 의 인자로 음수가 들어가면 당연히 에러가 납니다.
미리 음수인지를 확인해서 별도의 처리를 해주시던가,
ANSI C++ 라이브러리의 복소수 클래스인 complex를 쓰는 것도 좋은 방법입니다.

#include <iostream>
#include <complex>

using namespace std;

int main()
{
    complex<double> a, b, c, x1, x2, D;

    cout << "a*x^2 + b*x + c = 0\n"
            "a? "; cin >> a;
    cout << "b? "; cin >> b;
    cout << "c? "; cin >> c;

    D = sqrt(b * b - 4.0 * a * c);

    x1 = (-b + D) / (2.0 * a);
    x2 = (-b - D) / (2.0 * a);

    cout << "x1 = " << x1 << "\nx2 = " << x2 << endl;

    return 0;
}

출력은 다음과 같습니다.

a*x^2 + b*x + c = 0
a? 1
b? 1
c? 1
x1 = (-0.5,0.866025)
x2 = (-0.5,-0.866025)

만약 -0.5±0.866025i 와 같은 출력 형태를 만드시려면,
별도의 출력 함수를 만드시면 됩니다.

+ -

관련 글 리스트
2326 이차방정식의 해를 구하는 것 좀 알려주세요...ㅠㅠ 사공욱 1285 2003/04/09
3967     Re:이차방정식의 해를 구하는 것 좀 알려주세요...ㅠㅠ 사공욱 1072 2003/04/09
3966     Re:이차방정식의 해를 구하는 것 좀 알려주세요...ㅠㅠ 최준호.스페로 1107 2003/04/09
2332     Re: 근이 허수가 나올 때의 처리가 안 되어 있네요. 김백일.cedar 1059 2003/04/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.