카드 배열을 정의하고 루프 문을 사용하여 해당 배열에 값을 할당합니다. 꽃무늬 0-3 점 1- 13.
합계 = 0 을 정의합니다.
0 부터 53 까지의 숫자를 무작위로 생성합니다. 아래 첨자를 읽고, 색상에 액세스하고, 변수 hs 에 색상을 저장합니다.
루프, 새 아래 첨자에 해당하는 카드의 무늬도 hs, 출력과 sum++, 그렇지 않으면 순환합니다.
Sum++ 에서 sum==7 이면 루프를 종료합니다.
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & lttime.h & gt
//포커의 정의: 무늬와 포인트.
Typedef? 구조체
{
Int? Hs;
Int? Pt;
} 카드
//완전한 포커 카드 초기화
무효화? Init (카드? C[])
{
Int? 나;
For(I = 0;; 나 & lt52; I++)
{
C[i] 입니다. Hs = I% 4+1;
C[i] 입니다. Pt = I/4+1;
}
}
//출력 포커 배열
무효화? 인쇄 (카드? C[], int? N)
{
Int? 나;
샤일? Chs[4][5]={ "스페이드", "하트", "매화", "네모난"};
샤일? Cpt[ 13][3]={"A ","2 ","3 ","4 ","5 ","6 ","7 "
For(I = 0;; 나 & ltn;; I++)
Printf("%s%s\n ",chs[c[i]. [중국 핵 과학 기술 정보망]. Pt-1]);
}
무효화? 주 ()
{
카드? 카드 [52];
카드? 카드 new [7], firstCard, tmpCard
Int? I, j;
Srand (부호 없는) 시간 (비어 있음);
Init (카드);
//첫 번째 포커를 뽑다
Firstcard = 카드 [rand ()% 54];
Cardnew [0] = firstcard;
//나머지 6 장을 추출합니다.
For(I = 0;; 나<6; ) 을 참조하십시오
{
Tmp 카드 = 카드 [rand ()% 52];
//일관된 색상을 보장해야 합니다.
If(tmpCard.hs==firstCard.hs)
{
//점에 대해 반복 테스트를 수행합니다.
For(j = 0;; J<= I;; J++)
If(tmpCard.pt==cardNew[j].pt)
깨뜨리다
//반복하지 않으면 새 힙에 추가합니다.
If(j & gt;; 나)
{
Card new [I+1] = tmp 카드;
I++;+;
}
}
}
인쇄 (card new, 7);
}