= 데블스캠프2009/목요일/연습문제/다빈치코드/박준호 = {{{ #include int index = 0; char color; int num; int b_block[13] = {0 , 1 , 2, 3, 4, 5, 6 , 7, 8, 9, 10, 11, -1}; int w_block[13] = {0 ,1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11 ,-1}; int cardnum = 3; struct hand{ int number; char color1; }; typedef struct hand hand; hand handsort[13]; void CmpColor(hand handsort[], int i); void CmpNum(); void DrawCard(hand hand[], int index); int main() { for(index = 0; index <= cardnum; index++) { DrawCard(handsort,index); } CmpNum(); for(index = 0; index <= cardnum; index ++) { printf("%c%d ",handsort[index].color1, handsort[index].number); } return 0; } void DrawCard(hand handsort[], int index) { printf("받고 싶으신 색과 숫자를 적으시오."); fflush(stdin); scanf("%c %d", &color, &num); if (color == 'w'){ handsort[index].number = w_block[num]; handsort[index].color1 = 'w'; } else if(color == 'b'){ handsort[index].number = b_block[num]; handsort[index].color1 = 'b'; } } void CmpColor(hand handsort[],int i) { char a; int b; if(handsort[i].color1 == 'w') { a = handsort[i].color1; handsort[i].color1 = handsort[i+1].color1; handsort[i+1].color1 = a; b = handsort[i].number; handsort[i].number = handsort[i+1].number; handsort[i+1].number = b; //swap } } void CmpNum(){ int i =0, j = cardnum; int a = 0; char b; for(j = (cardnum - 1); j >= 0; j--) { for(i = 0; i <= j; i++) { if(handsort[i].number >= handsort[(i+1)].number) { if(handsort[i].number == handsort[i+1].number) { CmpColor(handsort, i); } else{ a = handsort[i].number; handsort[i].number =handsort[(i+1)].number; handsort[i+1].number = a; b = handsort[i].color1; handsort[i].color1 = handsort[i+1].color1; handsort[i+1].color1 = b; //swap } } } } } }}}