提问者:小点点

简单块中的值不正确


这很奇怪,但我有一小段代码,我用它来计算每件衣服的数量。然而,俱乐部和红桃总会以荒谬、离谱和明显错误的结果回报。钻石和黑桃总是正确的。我错过了什么?

  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++;
      }

共1个答案

匿名用户

您的声明仅初始化< code>numSpades。其他变量有未定义的值,即内存中发生的任何事情。试试这个:

int numClubs = 0, numHearts = 0, numDiamonds = 0, numSpades = 0;

钻石恰好有一个零值,这就是为什么它看起来工作正常。