2011-04-26 108 views
2

我需要用C++編寫一個完整的布爾函數,它將採用整數數組,並將其最大值作爲參數,並返回該數組是否具有值爲0的任何元素。C++整數數組和布爾函數

我甚至不知道從哪裏開始。

在此先感謝。

回答

3
bool checkFunction(int *myArray, int size) 
{ 
    for (int i=0; i < size; ++i) 
    { 
     if (myArray[i] == 0) 
      return true; 
    } 

    return false; 
} 

你是在說這樣的事情嗎?這將遍歷數組,並返回true,如果任何地方的值爲0。

1
bool TestForZero(int* myArray, int maxSize) 
{ 
    for(int ii=0; ii<maxSize; ++ii) 
     if(myArray[ii] == 0) 
     return true; 

    return false; 
} 
+2

這是洙*錯*在很多層面上... – 2011-04-26 18:49:21

+0

爲什麼'試穿catch'? – Nawaz 2011-04-26 18:53:05

+0

我嘗試着在那裏,因爲從技術上講,OP要求通過'最大'(不是實際)大小。我的實現是錯誤的,所以我把它拿出來了。 – Jess 2011-04-26 18:55:30

0

這聽起來像一個家庭作業問題非常糟糕,所以我只是給你的概念,讓你學習。

您需要使用「for」循環,檢查數組中每個項的值,如果找到一個返回true,否則在循環退出後返回false。

+0

是的,我正在做作業。這樣的問題可以嗎?我是該網站的新手和任何不成文的規則。 – lostandlearning 2011-04-26 18:50:18

+0

只要你已經完成了你的研究,提出問題來理解你的功課,而不僅僅是爲你完成你的功課,那麼家庭作業問題就沒有問題。 – Genzume 2011-04-26 18:54:26

+0

確實。像許多其他社區的編碼人員一樣,我們在這裏幫助您學習,而不是免費解決您的問題。所以如果你想學習,你會非常喜歡這個網站。祝你好運,希望你繼續保持下去! – djdanlib 2011-04-26 21:56:05

0
bool hasZeroes(int * array, int len) { 
    int zeroCount = 0; 
    for (int i = 0; i < len; i++) { 
    if (array[i] == 0) zeroCount++; 
    } 
    return zeroCount > 0; 
} 
3

使用std::find

#include <algorithm> 

bool ContainsZero(int *arr, int size) 
{ 
    return std::find(arr, arr+size, 0) != (arr+size); 
} 
0
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);