int num[5] 로 선언해 놓고 num[5] 에 접근한것부터가 에러
박지수 님이 쓰신 글 :
: 이렇게 저렇게 코딩해서 여기까지 왔습니다..
: 마지막에 check[0] 과 num[5] 가 같은 값이 나오더라구요...
: num배열은 난수를 담는 배열이고
: check는 난수를 받은 수를 몇번 받았는지 담는 배열입니다.
: 실행하면 check[0] 과 num[5]값이 같은 값으로 나오더라구요 왜 그런걸까요...
: 어디 쪽이 잘못되서 이러는건지...
: 또 총 45개의 check 난수 담은 배열 카운터를 보면
: check[0]은 num[5]와 같은 값으로 나오는상황
: check[1]은 다른 check[2]-[44] 보다 평균적으로 많이 카운터 되더라구요
: 난수라고 하지만 check[1]도 먼가 잘못 코딩된듯 싶어요
: 100000번을 돌렸을때 보통 다른 check[2]~[44]은 13xxx번 정도 카운터 되는데 비해
: check[1]만 15xxx번 카운터 되더라구여
: 이쪽도 코딩이 잘되서 그런건지 알고 싶습니다..
:
:
: {
: int check[45], num[5], temp;
: srand(time(NULL)); //난수 초기화
: for(int i=0;i<=44;i++){check[i]=0;} //시작전 초기화
: for(int a=1;a<=1;a++){ //난수이벤트 중복 실행 횟수 결정
: for(int j=0;j<=5;j++){ //난수이벤트 시작
: k:
: num[j]=0; //번호 초기화
: num[j]=rand()%45+1; //난수 발생
:
:
:
: if(num[j]==num[j-1]||num[j]==num[j-2]||num[j]==num[j-3]||
: num[j]==num[j-4]||num[j]==num[j-5]){goto k;}
: for(int i=1;i<=45;i++){ //배열의 난수값 비교 카운터 증가
: if(num[j]==i){check[i-1]=check[i-1]+1;}
: }//for(int i=1; i<=45; i++)
: }//for(int j=0;j<=5;j++)
: }//for(int a=0;a<=1000;a++)
: /* for(int i=0; i<=44; i++){
: if(check[i]<check[i+1]){
: temp=check[i];
: check[i]=check[i+1];
: check[i+1]=temp;}
: }*/
: Edit5->Text=num[0];
: Edit6->Text=num[1];
: Edit7->Text=num[2];
: Edit8->Text=num[3];
: Edit9->Text=num[4];
: Edit10->Text=num[5]; //check[0]와 같은값이나옴
: Edit11->Text=check[0]; //num[5]와 같은 값이 나옴
: Edit13->Text=check[5];
: }