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

C/C++ Q/A
[2329] Re:소스 수정 그래도 연전히 gcc는 안되고 다른 컴파일러들은 잘되고 결과도 정확합니다.
최준호.스페로 [sparrow] 1432 읽음    2003-04-09 03:13
안녕하세요 스페로 입니다.

일단 제가 답변을 달때 돌려 보지 않고 답변 드린점 죄송합니다.

#include<stdio.h>
#include<math.h>
#include<conio.h>

float a,b,c,x,X,Y,Z;

int main()
{
    printf("a,b,c를 입력해 주세요: ");
    scanf("%f %f %f",&a,&b,&c);

    x=(b*b)-4*a*c;
    Z=sqrt(x);

    X=(-b+Z)/(2*a);
    Y=(-b-Z)/(2*a);

    printf("결과 값은 %.2f, %.2f 입니다.",X,Y);
    getch();
    return 0;
}
위와 같이 소스를 변경 해봣습니다.
일단 C++빌더6 콘솔위자드에서는 정확한 결과나옵니다. 1 1 -2 입력시 1과 -2의 근을 얻습니다.

고친 부분이라곤 scanf가 double형을 입력 받지 못하는거 같아서 float로 바꾼거 ...

그리고 근의 공식을 자세히 보시면 알겟지만 14번과 15번 줄은 sqrt()함수가 필요 없죠

그리고 님이 gcc를 이용하신다길래 저도 리눅스 서버에서 돌려 봣습니다.
[root@sparrow-ls c]# gcc math_test.c -o math_test
/tmp/ccumOZXR.o: In function `main':
/tmp/ccumOZXR.o(.text+0x75): undefined reference to `sqrt'
collect2: ld returned 1 exit status

님과 비스므리한 에러가 발생 하는거 같군요..

무언가 잘못되었다는 건데

일단 빌더 컴파일시 문제가 없었기 때문에 다른 문제 같습니다.

그래서 리눅스에서 다시한번 컴파일을 시도 해보았습니다. g++로
아무런 에러 메세지 없이 목적 파일을 얻었고 정상 동작 하는 것을 확인 했습니다.
첨부 그림을 확인해 보세요..

그리고 늦은 시간이라 gcc문제는 좀 모르겟고요 혹 다른분들이나 님이 알게 되시면
저도 알려주세요 왜 gcc에서 sqrt함수 사용에 무조건 에러가 나는지...
태스트로 그냥 sqrt()함수를 사용해봣는데 무조건 에러가 납니다.

그럼^^

사공욱 님이 쓰신 글 :
: 안녕하세요 이번에 가입했습니다.
:
: 저에게는 어려운 c 코딩을 문제로 내서 한참 고민했는데도 안풀리는군요.
:
: 문제는 ax제곱+bx+c=0에서 a,b,c를 입력받아 해를 구하는 코딩을 해야합니다...ㅜㅜ
:
: 제가 코딩을 해본 것은
:
: #include<stdio.h>
: #include<math.h>
:
: double a,b,c,x,X,Y,Z;
:
: main()
: {
:     printf("a,b,c를 입력해 주세요: ");
:     scanf("%f %f %f",&a,&b,&c);
:    
:     x=(b*b)-4*a*c;
:     Z=sqrt(x);
:
:     X=sqrt((-b+Z)/2a);//14행
:     Y=sqrt((-b-Z)/2a);//15행
:
:     printf("결과 값은 %f, %f입니다.",X,Y);
: }
:
: 이것입니다...
:
: 그런데 유닉스 서버에서 gcc 컴파일러로 컴파일을 해보니까
:
: 2b.c: In function `main':
: 2b.c:14: nondigits in number and not hexadecimal
: 2b.c:15: nondigits in number and not hexadecimal
:
: 이런 에러가 자꾸 뜨는 군요...ㅠㅠ
: 어디서 잘못됐는지 또 math.h에 포함되어 있는 함수들의 종류와 사용법을
: 구할 수있는 곳을 알려주시면 정말 감사하겠습니다...^^;

+ -

관련 글 리스트
3965         Re:Re: 근이 허수가 나올 때의 처리가 안 되어 있네요. 김백일.cedar 1407 2003/04/09
3964         Re:Re: 근이 허수가 나올 때의 처리가 안 되어 있네요. 최준호.스페로 1524 2003/04/09
3963         Re:Re: 근이 허수가 나올 때의 처리가 안 되어 있네요. 사공욱 1281 2003/04/09
3962         Re:Re: 근이 허수가 나올 때의 처리가 안 되어 있네요. 최준호.스페로 1308 2003/04/09
2329     Re:소스 수정 그래도 연전히 gcc는 안되고 다른 컴파일러들은 잘되고 결과도 정확합니다. 최준호.스페로 1432 2003/04/09
2330         Re:Re:알아냈습니다. gcc에서 오류나는 이유는 -lm을 붙여서 (수학라이브러리 사용시 해야되는 옵션이랍 최준호.스페로 1899 2003/04/09
2333             스페로님 감사합니다...^^ 그런데... 사공욱 1300 2003/04/09
2334                 Re:스페로님 감사합니다...^^ 그런데... 최준호.스페로 1391 2003/04/09
2328     스페로님 안되더군요...ㅠㅠ 사공욱 1467 2003/04/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.