【问题标题】:C++ Integer array and boolean functionsC++ 整数数组和布尔函数
【发布时间】:2011-08-13 06:56:57
【问题描述】:

我需要在 C++ 中编写一个完整的布尔函数,它将一个整数数组和它的最大大小作为参数并返回该数组是否有任何值为 0 的元素。

我什至不知道从哪里开始。

提前致谢。

【问题讨论】:

    标签: c++ arrays integer boolean


    【解决方案1】:
    bool TestForZero(int* myArray, int maxSize)
    {
        for(int ii=0; ii<maxSize; ++ii)
          if(myArray[ii] == 0)
            return true;
    
      return false;
    }
    

    【讨论】:

    • 我曾尝试在那里捕捉,因为从技术上讲,OP 要求传递“最大”(不是实际)大小。我的实现是错误的,所以我把它拿出来了。
    【解决方案2】:
    bool foo(int* array, int size)
    {
        int i;
        for (i = 0; i < size; i++)
        {
            if (array[i] == 0)
            {
                return true;
            }
        }
    
        return false;
    }
    

    要调用它,您可以执行以下操作:

    int arr[] = { 1, 2, 3, 4, 0, 6};
    
    foo(arr, 6);
    

    【讨论】:

      【解决方案3】:

      使用std::find

      #include <algorithm>
      
      bool ContainsZero(int *arr, int size)
      {
         return std::find(arr, arr+size, 0) != (arr+size);
      }
      

      【讨论】:

        【解决方案4】:
        bool hasZeroes(int * array, int len) {
          int zeroCount = 0;
          for (int i = 0; i < len; i++) {
            if (array[i] == 0) zeroCount++;
          }
          return zeroCount > 0;
        }
        

        【讨论】:

          【解决方案5】:

          这听起来很像家庭作业问题,所以我只给你一些概念,让你学习。

          需要使用“for”循环,检查数组中每一项的值,找到则返回true,否则循环退出后返回false。

          【讨论】:

          • 是的,我正在做作业。这样的问题可以吗?我是该网站和任何不成文规则的新手。
          • 家庭作业问题完全没问题,只要您完成研究,提出问题以了解您的家庭作业,而不仅仅是为您完成家庭作业。
          • 确实如此。像其他许多程序员社区一样,我们在这里帮助您学习,而不是免费解决您的问题。因此,如果您想学习,您将非常喜欢这个网站。祝你学习顺利,希望你继续努力!
          【解决方案6】:

          看看arrays in C++上的教程怎么样?

          【讨论】:

            【解决方案7】:
            bool checkFunction(int *myArray, int size)
            {
                for (int i=0; i < size; ++i)
                {
                    if (myArray[i] == 0)
                        return true;
                }
            
                return false;
            }
            

            您是在谈论这样的事情吗?这将遍历数组,如果任何地方的值为 0,则返回 true。

            【讨论】:

              猜你喜欢
              • 2021-12-07
              • 1970-01-01
              • 1970-01-01
              • 2018-05-13
              • 2015-06-12
              • 1970-01-01
              • 2010-10-12
              • 2013-09-30
              • 1970-01-01
              相关资源
              最近更新 更多