ブール変数から作成された配列のすべてのメンバーをチェックし、最初の「真の」値が見つかったときに終了するループを持つ関数を作成しようとしています。
それが私が今持っているものです:
bool solids[50];
int a,i;
//"equality" is a function that checks the equality between "a" and a defined value
solids[0] = equality(a,&value_1);
solids[1] = equality(a,&value_1);
solids[2] = equality(a,&value_1);
solids[3] = equality(a,&value_1);
for (i = 0; solids[i] != true; i++)
{
[...]
}
しかし、ループに何を入れる必要があるのか わかりません。
私の試みは
for (i = 0; i <= 50; i++)
{
if (solids[i] == true)
{
return true;
break;
} else {
return false;
}
}
、true
最初に true が見つかった後に戻りfalse
、配列にtrue
値を持つメンバーがない場合に戻る必要がありますが、コードでは機能しないようです。
違いますか?はいの場合、何が問題ですか?
PS .:true
カウンタを使用して s の数を数えることはできますが、これは問題の最適な解決策ではありません。最初の値を探すだけなのでtrue
、プログラムは 50 個のメンバーすべてをチェックする必要がないからです。数える必要はありませんが、これが解決する必要がある不要なステップの数は何を意味するのでしょうか。