아래의 함수는 내가 작업중인이 카드 게임에 두 개의 중복 카드가있는 경우를 알아 내야합니다.이 함수가 절대로 적절한 결과를 반환하지 않는 이유를 알아보십시오
int duplicate (struct card hand[])
{
int i = 0, j = 0, duplicate = 0;
for (i = 0; i < 5; i++)
{
for (j = i + 1; j < 5; j++)
{
if (hand[i].suit == hand[j].suit && hand[i].face == hand[j].face)
{
duplicate++;
}
}
}
return duplicate;
}
그 이유를 알아낼 수는 없지만, 손에서 카드의 값이 동일한 경우는 중복 카드의 수에 추가하지 않습니다.
Im 확실한 무엇인가 분명해야하지만 나는 그것을 보지 못한다.
감사합니다.
는
내가 그것을 단계별로 디버거를 사용하는 것이 좋습니다 그리고 당신에게 명백한 표시됩니다. –
어쩌면 당신은 손의 클래스 선언을 포함시킬 수 있습니다. 테스트에서 카드의 정확한 중복을 확인하고 있습니까? – Hanmyo
나에게 잘 보입니다. 전달되는 매개 변수는 사용자가 생각하는 것이 아니어야합니다. 어쩌면 그 기능을 인쇄 할 수 있습니다 .... – wallyk