#include <stdio.h>
typedef struct card
{
int kind;
int num;
} card;
void pair(card* you);
void triple(card* you);
//void fullhouse(card* you);
int main()
{
int i=0;
card you[5] = {0};
printf("카드의 종류 와 번호를 입력 하시오\n");
printf(" 1. ♠\t 2. ◆\t 3. ♥\t 4. ♣\t \n\n");
for(i=0; i<5; i++)
{
scanf("%d %d",&you[i].kind,&you[i].num);
}
for(i=0; i<5; i++)
{
printf("카드 종류는 %d 이고 번호는 %d 이다 \n",you[i].kind,you[i].num);
}
pair(you);
triple(you);
//fullhouse(you);
return 0;
}
void pair(card* you)
{
printf("페어 함수 들어옴\n\n");
int i,j=0;
int count=0;
for(i=0; i<5; i++)
{
j=i+1;
for(;j<5; j++)
{
if(you[i].num == you[j].num)
{
count++;
}
}
}
//printf("%d\n\n", count);
if(count==1)
printf("원페어 입니다.\n\n");
else if(count==2)
printf("투페어 입니다.\n\n");
}
void triple(card* you)
{
printf("트리플 함수 들어옴\n\n");
int i,j=0,k=0;
int count=0;
for(i=0; i<5; i++)
{
j=i+1;
for(;j<5; j++)
{
if(you[i].num == you[j].num)
{
for(; k<5; k++)
{
k=j+1;
if(you[i].num == you[k].num)
count++;
break;
}
if(count==1)
break;
}
if(count==1)
break;
}
}
if(count==1)
printf("트리플 입니다.\n\n");
}
이러한 코드 입니다.
실행시키고
입력을
이오ㅏ같이 하면 트리플이 나와야 되는데 나오지가 않습니다.
트리플 같은경우는 삼중 포문을 써서
i j k
0 1 2
3
4
2 3
4
3 4
1 2 3
4
3 4
2 3 4
이렇게 모든 경우의 수를 다 검사하도록 하였고 그 중간에 만약 트리플이 되는 경우가 있으면 break 문을 이용하여 다 빠져나오도록 하였습니다
어느부분때문에 트리플 함수는 제대로 작동하지 않는것일까요 ?