2015-09-01 53 views
0
const int DECLARED_SIZE = 20; 

void fillArray(int a[], int size, int& numberUsed) { 
     cout << "Enter up to " << size << " nonnegative whole numbers.\n" 
     << "Mark the end of the list with a negative number.\n"; 

    int next, index = 0; 
    cin >> next; 
    while ((next >= 0) && (index < size)) 
    { 
     a[index] = next; 
     index++; 
     cin >> next; 
    } 

    numberUsed = index; 
} 

int search(const int a[], int numberUsed, int target) 
{ 
    int index = 0; 
    bool found = false; 
    while ((!found) && (index < numberUsed)) 
     if (target == a[index]) 
      found = true; 
     else 
      index++; 

    if (found) 
     return index; 
    else 
     return -1; 
} 

由於某種原因它始終輸出0。我怎樣才能創建一個函數,在這個代碼中的數組中輸出0的數量?

int findZero(const int a[], int target, int numberUsed, int zeroes) 
    { 
     for (int index = 0; index < numberUsed; index++) 
     { 
      if (target == a[index]) 
       zeroes++; 
     } 
     return zeroes; 
    } 

這是主碼。

int main() 
    { 
    int arr[DECLARED_SIZE], listSize, target; 

貌似後大多代碼 請添加更多細節

fillArray(arr, DECLARED_SIZE, listSize); 

    char ans; 
    int result; 
    int zeroes; 
    int numberUsed; 
    do 
    { 
     cout << "Enter a number to search for: "; 
     cin >> target; 
     int numberOfZeroes = findZero(arr, target, zeroes, numberUsed); 
     cout << "The amount of zero = " << zeroes << endl; 

還有更多的代碼,但我只包含這部分,我需要輸出0的量在陣列。

+0

你知道爲什麼我最後的功能不斷輸出0嗎?我試圖讓它計數並加總陣列中的總量0。太令人沮喪了 – kdasdaskl

回答

0

在數組元素的數量(readed,不陣列的最大尺寸)

爲什麼沒有正確計數?那麼你已經切換參數...

int main() 
    { 
     int arr[DECLARED_SIZE], listSize; 

     fillArray(arr, DECLARED_SIZE, listSize); 

     int target; 
     do { 
      cout << "Enter a number to search for: "; 
      target = -1; // if you give wrong input to cin, it will end (at least) 
      cin >> target; 
      int numberOfZeroes = findZero(arr, target, listSize, 0); 
      cout << "The amount of number = " << numberOfZeroes << endl; 
     } while (target >= 0); 
     return 0; 
    } 

爲什麼零通過那裏呢?如果你需要局部變量,將它創建爲int zeroes = 0;那= 0真的很重要!

+0

謝謝!雖然我仍然無法讓我的功能工作。我正在嘗試創建一個函數來計算數組中如何並將多個0加起來。 我已經編輯我的帖子在最後與功能,不工作。任何想法爲什麼它只輸出0無論元素或數組大小是什麼? – kdasdaskl

+0

你是不是指大於或等於0? – kdasdaskl

+0

對不起,我有時像盲人一樣。無論如何,你的findZero怎麼叫?你使用返回值嗎?或者你嘗試使用傳遞的值,並想知道爲什麼它不起作用? – KIIV

相關問題