当前位置: 首页 > 知识库问答 >
问题:

简单块中的值不正确

欧阳博文
2023-03-14

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

  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个答案

爱花蜂
2023-03-14

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

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

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

 类似资料:
  • 你好,我正在复习Java练习。我有一个非常简单的程序:有两个int值,以及一个布尔变量。 i) 如果其中一个值为负值,另一个值为正值,则程序将返回true。 ii)但是,如果布尔变量为true,则程序只能在两个int值均为负值时返回true。 我已经用一堆int值对此进行了测试,但是一旦我给这个方法(1,-1)的值,以及布尔值设置为true,程序似乎就会崩溃。任何帮助或解释都将不胜感激。

  • 变量命名 在《初识永远强大的函数》一文中,有一节专门讨论“取名字的学问”,就是有关变量名称的问题,本着温故而知新的原则,这里要复习: 名称格式:(下划线或者字母)+(任意数目的字母,数字或下划线) 注意: 区分大小写 禁止使用保留字 遵循通常习惯 以单一下划线开头的变量名(_X)不会被from module import *语句导入的。 前后有下划线的变量名(X)是系统定义的变量名,对解释器有特殊

  • 我试图找出如何计算CRC为非常简单的SDLC帧。 使用MLT我捕获流,我看到一些简单的帧被发送出去,如:0x3073F9E3和0x3011EDE3 null 这将给出输出B8ED,所以最后一个字节是ed。 有什么想法吗?

  • 本文向大家介绍简单介绍Python中的struct模块,包括了简单介绍Python中的struct模块的使用技巧和注意事项,需要的朋友参考一下 准确地讲,Python没有专门处理字节的数据类型。但由于str既是字符串,又可以表示字节,所以,字节数组=str。而在C语言中,我们可以很方便地用struct、union来处理字节,以及字节和int,float的转换。 在Python中,比方说要把一个32

  • 本文向大家介绍跟老齐学Python之赋值,简单也不简单,包括了跟老齐学Python之赋值,简单也不简单的使用技巧和注意事项,需要的朋友参考一下 变量命名 在《初识永远强大的函数》一文中,有一节专门讨论“取名字的学问”,就是有关变量名称的问题,本温故而知新的原则,这里要复习: 名称格式:(下划线或者字母)+(任意数目的字母,数字或下划线) 注意:  1.区分大小写  2.禁止使用保留字  3.遵守通

  • 因此,我使用yeoman生成的vs代码扩展中的vscode节点模块没有问题。 但是,模块似乎不能从一个用于测试的新的简单脚本中工作,这有什么原因吗? 我在代码中没有发现intellisense错误,我的vscode.d.ts文件也在它应该在的地方。 index.ts: index.js: package.json: 例外情况: https://github.com/microsoft/vscode