我是編程新手,我似乎遇到了一個返回finalResult變量的問題,每當我將它傳回給main時,它都會返回true,無論答案是true還是false但如果我在第二個函數中輸出,我會得到正確的答案,這是否與「*結果」有關?返回bool值爲主C++總是返回true,無論回答如何
我收到了我的老師是如下的問題...
「,可能被傳遞到數組的引用的函數的HasValue,數組的大小和 搜索值。該函數應返回真,如果數組」
,所以我寫了這個在存在搜索值,
#include <iostream>
#include <algorithm>
using namespace std;
bool HasValue(int number, long length, int arr[], bool finalResult);
int main(int argc, const char* argv[])
{
int num, arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
bool result;
auto array_length = end(arr) - begin(arr); //size of array
cout << "enter number: ";
cin >> num;
HasValue(num, array_length, arr, result);
cout << result << "\n";
return 0;
}
bool HasValue(int number, long length, int arr[], bool finalResult)
{
int* end = arr + length;
int* result = find(arr, end, number);
if (result != end)
finalResult = true;
else
finalResult = false;
return finalResult;
}
我可能做一些非常愚蠢的,但我不能發現它,任何的幫助深表感謝,感謝你提前。
你做了一件非常愚蠢的事情......你沒有給任何東西設置結果。 – immibis
這裏是整個'HasValue'函數:'返回std :: find(arr,arr +長度,數字)!=數組+長度;' – PaulMcKenzie
謝謝,id沒有意識到我不得不,我認爲它會默認作爲「0」 – Dean