简单块中的错误值
Incorrect Values in a Simple Chunk
这很奇怪,但我有这么一小段代码,我用它来计算手中每种花色的数量。然而,梅花和红心总是 return 离谱且明显错误的结果。方块和黑桃总是正确的。我在这里错过了什么?
int numClubs, numHearts, numDiamonds, numSpades = 0;
// Iterate through all the cards in the
// player's hand, incrementing the counters
// if they are a given suit.
for (int i = 0; i < m_numCards; i++){
if ((m_cards[i]->getSuit()) == Card::Clubs)
numClubs++;
else if ((m_cards[i]->getSuit()) == Card::Hearts)
numHearts++;
else if ((m_cards[i]->getSuit()) == Card::Diamonds)
numDiamonds++;
else
numSpades++;
}
您的声明仅初始化 numSpades
。其他变量具有未定义的值,即内存中发生的任何值。试试这个:
int numClubs = 0, numHearts = 0, numDiamonds = 0, numSpades = 0;
钻石刚好有一个零值,这就是为什么它看起来可以正常工作的原因。
这很奇怪,但我有这么一小段代码,我用它来计算手中每种花色的数量。然而,梅花和红心总是 return 离谱且明显错误的结果。方块和黑桃总是正确的。我在这里错过了什么?
int numClubs, numHearts, numDiamonds, numSpades = 0;
// Iterate through all the cards in the
// player's hand, incrementing the counters
// if they are a given suit.
for (int i = 0; i < m_numCards; i++){
if ((m_cards[i]->getSuit()) == Card::Clubs)
numClubs++;
else if ((m_cards[i]->getSuit()) == Card::Hearts)
numHearts++;
else if ((m_cards[i]->getSuit()) == Card::Diamonds)
numDiamonds++;
else
numSpades++;
}
您的声明仅初始化 numSpades
。其他变量具有未定义的值,即内存中发生的任何值。试试这个:
int numClubs = 0, numHearts = 0, numDiamonds = 0, numSpades = 0;
钻石刚好有一个零值,这就是为什么它看起来可以正常工作的原因。