실수 연산 관련 질문드립니다.
혜윤
제가 2가지 실수 를 쓰는 문제에서 막혔습니다.
첫번째는 조화수열 입니다. 1, 1/2, 1/3 이렇게 증가하는 수열이죠.
for(i=0; iinput; i++)
{
a=(float) 1/i;
printf(%f, a);
}
대충 이렇게 짰습니다. 제 생각대로라면 0이면 0, 이후 1이면 1, 1/2, 1/3 이런 순으로 출력될 것 같은데 전혀 엉뚱한 값들이 나옵니다.
아무리 해도 해결 방법을 모르겠네요.
또 다른 실수 문제는
실수 를 입력하면 3.512 이렇게 하면
소수점 아래 부분만 0.512 나 혹은 512 이렇게 출력이 되는 프로그램을 만드는 겁니다.
제 생각으로는
scanf(%f, &num);
이렇게 실수형을 입력받으면
result = num % (int) num ;
이렇게 하면 소수점의 나머지 부분만 출력 될 줄 알았는데 안되네요. 뭐가 문제일까요;;
형변화 너무 어려운듯 합니다.
-
널위해
첫번째꺼는 에러 안나고 실행이 되던가요? 1/0 이라는 부분에서 0으로 나눌 수 없다라고 에러날 것 같은데요;;
그리고 출력이 1, 0.5, 0.33333, 이렇게가 아니라 1, 1/2, 1/3 이걸 원하는건가요?
문자값이 아닌 이상 전자로 출력될텐데요....
두번째는 float 의 경우 %f 로 출력을 하면 소수점 6째 자리까지 출력이 되죠.
3.512 라고 입력이 된다면, 출력은 3.512000 이렇게 나옵니다.
그럼 이걸 1000000 으로 곱하