랜덤함수 질문입니다...저장된값이 다르게 나와요..ㅜㅜ
멱부리
질문 제목 : 랜덤함수 출력처음에 입력값의 0.3%이내에서 난수생성한 것을 저장한 값을 출력한거랑 다시 출력했을때 그 저장한 값이 안나와요질문 내용 :
//0.3%이내에서 난수발생
while(1)
{
r=my_rand(); //my_rand()는 제가 임의로 만든 난수생성 함수
if((n*0.997)r && r(n*1.003)) //n은 입력값
{
a[h]=r;
h++;
}
if(h15) break;
}
//저장된 a[h]값 출력
for(h=0;h16;h++)
printf(%u\t,a[h]);
printf(\n\n);
//0~15사이에서 랜덤함수 4개씩 100개 발생
for(i=0;i100;i++)
{
ran[i][0]=my_random(); //my_random()은 제가임의로 만든 0~15까지 발생하는난수생성함수
while(1)
{
for(j=0;jk+1;j++)
{
s=my_random();
if(ran[i][j]!=s) //중복 방지
{
k++;
ran[i][k]=s;
}
}
if(k==3) break;
}
}
//저장된 a[h]값 다시 출력
for(h=0;h16;h++)
printf(%u\t,a[h]);
printf(\n\n);
첨에 입력값의 0.3%이내의 값을 난수로 발생해서 a[]값에 저장했거든요..
그리고 그 아래에 바로 0~15까지의 난수를 발생시켜서 ran[][]값에 저장하였습니다.
그런데 a[h]값을 출력하니까 위에는 제대로 0.3%이내의 값이 나왔는데
아래에 다시 a[h]값을 출력하니까 0~15까지의 난수발생한 값이 나오더라구요..
왜 그런거죠? 도저히 모르겟어요..ㅠㅠ
고수님들 답변 부탁드릴게요..ㅠㅠ
-
꽃가람
풀소스가 아닌거 같아서 전부 메인에 있는건지 함수에 따로 있는지 모르겠는데 로컬변수 스코프 문제가 아닌가 보이네요.