2012-08-07 5 views
-1

사용자가 입력 한 정수의 제곱근을 찾는 프로그램을 작성해야합니다. 하지만 문제를 만났습니다. 프로그램이 sqrt를 계산하지 않습니다. 인터넷에서 문제를 찾았지만 모든 해결책을 읽었지만 저를 도와주지 않았습니다. 이 포럼에는이 주제에 대한 많은 질문이 있지만 거기에 설명 된 해결책은 저를 위해 작동하지 않습니다.sqrt in C in Ubuntu

사실 사용자가 정수를 입력하면 sqrt 함수가 작동하지 않습니다. 가치를 설정하면 완벽하게 작동합니다. 즉, 변수의 것이 아니라 상수의 sqrt를 찾습니다. 나는 우분투 작업입니다 gcc -o sqrt -lm sqrt.c

나는 (사방에 기록 된대로)이 코드로 컴파일합니다.

#include<stdio.h> 
#include<math.h> 
main() 
{ 
int a; 
double b=sqrt(a); 
scanf("%i", &a); 
printf("sqrt of integer is %lf", b); 
getchar(); 
getchar(); 
return 0; 
} 
+2

사이드 노트 : 귀하의 경우,'-lm'은 기본적으로 gcc에 의해 링크됩니다. 그렇지 않으면, 그것을 사용하는 파일 뒤에'-lm' **을 넣어야합니다. 일반적으로 링크 할 때 'A'에 'B'가 필요한 경우 'B'가 뒤에옵니다. – Shahbaz

+2

실수로 실수를하면 더 많은 C 튜토리얼을 읽거나 더 신중하게 읽어야합니다. –

+0

@ H2CO3, 방금 C를 배우기 시작했습니다. (제 이전 질문 - 제 4 번째 질문입니다.) 나에게 도움이되는 정보가 포함되지 않은 제 질문에 의견을 쓰지 마십시오. 나는 웹에 대한 연구를 한 후에 만 ​​여기서 질문을한다. – 454b

답변

8
int a; 
double b=sqrt(a); 
scanf("%i", &a); 

당신은 그것을 초기화하기 전에 변수 (a)를 사용하는 :

는 코드입니다. scanfsqrt 앞에 있어야합니다.

+0

고마워 !!!! 그것은 일했다 !!! : D – 454b

+1

@cnicutar, 그렇다면 중요하지 않은 질문에 대한 답변이 매우 높은 표를 얻는 방법을 알았습니까? 당신은 궁금해하게합니다 ... 대부분의 고위직 담당자들이 실제로 매우 지식이있는 것은 아니지만 응답이 빠르다는 것 같습니다. – Shahbaz

+0

@Shahbaz http://meta.stackexchange.com/questions/9731/fastest-gun-in-the-west-problem 또한 나는 자신을 매우 잘 알고 있다고 생각하지 않습니다;) 자주 묻는 질문으로, 평판은 측정 값입니다 지식이나 지혜의 척도가 아니라 지역 사회가 당신을 얼마나 신뢰하는지. – cnicutar

3

이미 작성된 두 가지 좋은 답변에 뭔가를 추가하려면 C에서 명령어의 기본 순서가 선형 인 것을 명심해야합니다. 먼저 작성된 지시문이 먼저 실행됩니다. 우리가 수학에 관해 이야기했다면, '함수 sqrt (a)라고하고, b (a)가 무엇인지 알아내는 것이 좋을 것입니다. 자신의 함수를 정의하여 실제로 C에서이 작업을 수행 할 수 있지만 그 밖의 작업입니다. 주의 : 컴퓨터는 당신이 말한대로 행동하지 않습니다. 당신이 말한대로합니다.