|
최준호.스페로 님이 쓰신 글 :
: 안녕하세요 스페로 입니다.
:
: 일단 제가 답변을 달때 돌려 보지 않고 답변 드린점 죄송합니다.
:
: #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에 포함되어 있는 함수들의 종류와 사용법을
: : 구할 수있는 곳을 알려주시면 정말 감사하겠습니다...^^;
|