C#으로 로또 프로그램을 만들고 있는데
로또 프로그램은 굉장이 잘 돌아가는데..
이게 문제가 ㅠ
로또 번호 6개 출력이 1번으로 해서
사용자가 지정해서 횟수를 받은다음에
그 횟수만큼 로또기계를 돌려서 가장 많이 나온 숫자들을 뽑아서
숫자 6개를 출력하는 프로그램입니다...
쉽게 말하면 가장 확률 높은 번호 뽑기죠..
이게 제가 한 방법이
cnt와 temp 배열을 한개씩 더 만들어서
로또 번호가 1이 나오면 cnt[1]에 값을 1씩 증가시킨 다음
버블정렬로 내림차순으로 cnt 배열 안에서 가장 큰 수의 방번호를 알아내서
imsi 배열에 순서대로 6개를 집어 넣어서 출력하려고 하는데
이게 계속 로또 번호가 0이 자꾸 출력이 되더라구요ㅠㅠ....
그래서 지금 카운트값 증가하는거 까지는 잘 되는데...
그 가장큰 값을 순서대로 6개 뽑는게 안되네요....
조언을 조금만 해주세요 ㅠㅠ...
참고로 Array.Reverse(cnt)는 안되더군요,,,
Array.Sort는 잘되는데 리버스는 역정렬이 안되더라구요...
왜그럴까요??...
for (int i = 0; i < su; i++) {
int arrayIndex = 0; //배열 항목에 대한 위치값 초기화
//지정 개수만큼 번호 만들기
while (arrayIndex < _numCount) {
rdmNum = numCopy = _rdm.Next(_numRangeTo) + 1; //새로운 번호 발생
if (!this.IsAlreadyExistNum(rdmNum)) { //중복이 아니면 if문 발생
_numArray[arrayIndex] = rdmNum; //새로운 번호 생성한 뒤 저장
arrayIndex += 1; //배열 위치값 1 증가
cnt[numCopy] += 1; //cnt안의 값 1 증가
}
}
//내림차순 정렬 (버블 정렬)
/*for (int j = 0; j < _numRangeTo-1; j++) {
int arrayindex2 = 0;
for (int k = 0; k < _numRangeTo -1 - j; k++) {
if (cnt[k] < cnt[k + 1]) {
temp = k+1;
imsi[arrayindex2] = temp+1;
arrayindex2 += 1;
// temp = cnt[k];
// cnt[k] = cnt[k + 1];
// cnt[k + 1] = temp;
}
}
}*/
}
//this.SortNumArray(); //순서대로 정렬
return cnt;
}