ABC보고 있는데 2장 연습문제부터 막혔습니다....ㅡㅡ;;;;
문제는 많은 수의 rand() 함수를 호출할 때에 그 호출되는 값들이
RAND_MAX/2.0 보다 크면 above_cnt를 1 증가시키고
그보다 작으면 below_cnt를 1 증가시켜 above_cnt와 below_cnt의 차이가
0에서 진동하는지 아닌지를 알아보자는 내용입니다.
쉬운 것 같은데 전혀 엉뚱한 결과가 나오네요....
제가 한 코딩은 다음과 같습니다.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i,n,below_cnt,above_cnt,diff;
double median=RAND_MAX / 2.0;
for(i=0;i<=499;++i)
{
printf("%6d\n",rand());
if(rand()>median)
{
above_cnt+=1;
}
else
{
below_cnt+=1;
}
diff=above_cnt-below_cnt;
printf("\n%s%d","0과의 편차는: ",diff);
}
return 0;
}
|