2017-09-13 2 views
-1

値が配列内にあるかどうかをチェックする方法はありますが、値がない場合は をチェックする方法がありますか?配列のすべての値と等しくないintをチェックする方法はありますか? (C++)

このコードはすべてのインデックスをチェックしますが、次のインデックスに進むと過去のインデックスを無視します。 (すなわちvary_result!=「アレイ内のすべての値が」?ということをチェックするコードがあります)

int buffer; //all variables 
int vary_result; 
int range; 
int minimum_value; 
for(int j = 0; j < buffer; j++) { 
    if(vary_result == buffer_array[j]){ 
     vary_result = rand() % range + minimum_value; // creates a random value and saves it at vary_result 
     }; 
    }; 
cout << vary_result << endl; 
+3

'vary_result = rand()%range + minimum_value;のポイントは何ですか?それは指定された目標とは何も関係していないようです。 – Carcigenicate

+0

値が配列内にあるかどうかをチェックし、結果を 'x'と呼びます。配列にない場合は'!x'です。 – user463035818

+4

['std :: none_off'](http://en.cppreference.com/w/cpp/algorithm/all_any_none_of) – NathanOliver

答えて

4

が、私はそこに配列に値があるかどうかを確認する方法があるが、知っているが、値がないかどうかをチェックする方法は?

第二は、最初にちょうど反対である:

auto begin = buffer_array; 
auto end = buffer_array + buffer; 
auto it = std::find(begin, end, value); 
if(it == end) // value not found which means none of the elements equal to value, which means value is not in array 
    // do whatever, but do not dereference it 
2

はい値が配列されていないかどうかをテストする方法があります。ここに私がそれをした方法があります:

bool valueInArray; 
bool valueNotInArray = true; 
int valueToTest = 10; 
int valuesArray[] = [1, 2, 3, 5, 9]; 


for(int i = valuesArray.length(); i <= valuesArray.length(); i++) { 
if(valueToTest == valuesArray[i]) 
    notInIt == false; 
} 

if (notInIt == false) 
    valueInArray = true; 
else 
    valueInArray = false; 

本質的に、私は2つのブール値、テストする数、および配列を作成しました。番号が配列内にあるかどうかを調べるためにforループを使って配列を調べました。次に、if/elseを使用して、前のものとは反対のブール値を設定します。このようにして、値が配列内にない場合、最終ブール値が反映されます。

+0

コードに問題があります。配列の2番目の最後の値がテストと等しい場合値、notInItはfalseになります。ただし、配列の最後の値がテスト値と等しくない場合、notIntItはtrueになります。したがって、たとえそれがあったとしても、テスト変数が配列内にないように見えます。 –

関連する問題