심심해서 만든 로또 프로그램에 정렬기능 추가
qsort()는 첨 써보네..
일단 compare 함수에서 캐스팅 하는 부분을 잘 해주면...
범용으로 쓸수 있을려나? 무리일려나?
int compare (const void *first, const void *second) { if (*(unsigned char*)first > *(unsigned char*)second) return 1; else if (*(unsigned char*)first < *(unsigned char*)second) return -1; else return 0; } void CLottoDlg::OnButton1() { // TODO: Add your control notification handler code here int idx; unsigned char flag[45]; unsigned char genval = 0; CString *strarray[42] = { &m_edit1,&m_edit2,&m_edit3,&m_edit4,&m_edit5,&m_edit6, &m_edit7,&m_edit8,&m_edit9,&m_edit10,&m_edit11,&m_edit12, &m_edit13,&m_edit14,&m_edit15,&m_edit16,&m_edit17,&m_edit18, &m_edit19,&m_edit20,&m_edit21,&m_edit22,&m_edit23,&m_edit24, &m_edit25,&m_edit26,&m_edit27,&m_edit28,&m_edit29,&m_edit30, &m_edit31,&m_edit32,&m_edit33,&m_edit34,&m_edit35,&m_edit36, &m_edit37,&m_edit38,&m_edit39,&m_edit40,&m_edit41,&m_edit42 }; unsigned char row[42]; memset(flag, 0x00, sizeof(unsigned char) * 45); srand(time(NULL)); for(idx = 0 ;idx < 30;idx++) { do { genval = rand() % 45; } while(flag[genval] != 0); flag[genval] = 1; row[idx] = genval; } for(idx = 0; idx < 5; idx++) { qsort(row + (idx * 6), 6, sizeof(char), compare); } for(idx = 0; idx < 30; idx++) { strarray[idx]->Format("%d",row[idx] + 1); } UpdateData(FALSE); } |
'Programming > C Win32 MFC' 카테고리의 다른 글
MFC HTTP GET/POST (0) | 2017.03.02 |
---|---|
win32 http 인증 관련 (0) | 2017.02.28 |
MFC UpdateData() (0) | 2016.12.16 |
윈도우에서 dll 동적 라이브러리 사용하기 (0) | 2016.04.04 |
가변 매크로 __VA_ARGS__ (0) | 2016.03.18 |