#include <stdio.h>
#include <math.h>
int main(void)
{
float x=1;
int a, i, n=1;
scanf(\"%d\", &a);
for (n=1; n<=a; n++)
{
for (i=1, x=(n+1)*0.5; x>sqrt((float)n); i++)
x=(x+n/x)*0.5;
printf(\"sqrt<%d> / Result : %f with %d iteration\\n\", n, x, i);
}
return 0;
}
여기서 굵게 표시한부분을 전부 float -> double로 바꿨는데 출력이 제대로 안됨. 이거 뭐가 문제임?
인생이 문제
디버깅 과정을 올려
float 4byte double은 8byte, 그리고 내부 비트구조도 틀려서 그런거아님? 스퀘어루트함수 파라메터타입이 어떤지도 알려줘. 근데 저거 define 함수였던가? 나 DSP에만 짜봐서ㅋ 누구 아는횽 있나?
나는 잘 되는데....혹시 프린트문 안에 f는 뭘로 바꾸셨음?
어떻게 돼야 제대로 되는건데? 병신아
예를들어 \'10\'을 입력하면 1~10까지 쭉 나와야하는데, 자꾸 1만 나오고 끝나...
희한하게 (double) (x+n/x) 로 바꾸니까 제대로되네...? 그런데 x가 double이고 n이 int면 (x+n/x)는 따로 cast할 필요없는거아냐?