#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int checks(int cards[]) {
int i, x;
int b[4]={0,};
for(i=0;i<7;++i) b[cards[i]/13]+=1;
x=0;
for(i=0;i<4;++i) {
if(b[i]>4) ++x;
}
if(x>0) return 1;
return 0;
}
int main() {
int i, j, x, n=0;
int cards[52];
char kinds[4][20]={"Hearts","Spades","Diamonds","Clubs"};
srand(time(NULL));
while(1) {
n=n+1;
for(i=0;i<52;++i) cards[i]=i;
for(i=0;i<52;++i) {
j=rand()%52;
x=cards[i];cards[i]=cards[j];cards[j]=x;
}
if(checks(cards)) {
for(i=1;i<7;++i) {
for(j=0;j<7-i;++j) {
if(cards[j]>cards[j+1]) {x=cards[j];cards[j]=cards[j+1];cards[j+1]=x; }
}
}
for(i=0;i<7;++i) printf("%2d %s \n",(cards[i]%13)+1, kinds[cards[i]/13]);
break;
}
else {
for(i=0;i<7;++i) printf("%2d %s ",(cards[i]%13)+1, kinds[cards[i]/13]);
printf(".\n");
}
}
return 0;
}
'c·c++ > c 프로그래밍' 카테고리의 다른 글
포인터 질문입니다. (0) | 2012.05.25 |
---|---|
알수 없는 수수께끼 i = i--; 의 동작 (0) | 2012.05.24 |
C언어에서 명령을 시간 내에만 실행하게 하는 방법이 있나요? (0) | 2012.05.20 |
combination 조합 (0) | 2012.05.19 |
카드게임 스트레이트 체크 (0) | 2012.05.18 |