Imプログラミングには新しく、finalResult変数を返すときに問題があるようですが、メインに戻すたびにtrueまたはfalseしかし、私が2番目の関数で出力すると正しい答えが得られますが、 "* result"と何か関係がありますか?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;
}
私はおそらく、本当に愚かな何かをやっているが、私はそれを見つけるカント、任意のヘルプははるかに高く評価され、配列」
はので、私はこれを書いたに存在する場合、事前にあなたに感謝。
あなたは本当にばかげたことをしました。あなたは何かに 'result'を設定しませんでした。 – immibis
ここに 'HasValue'関数全体があります:' return std :: find(arr、arr + length、number)!= array + length; ' – PaulMcKenzie
ありがとう、私は気付かなかった、 "0"として – Dean