2011-05-11 24 views
2

たとえば、5つの入力要素の配列がある場合、その値が変数にすでに設定されている場合、特定の値が何回入力されたかをどのように数えますか。特定の要素数をカウントする

INPUT: 
4 
4 
4 
1 
2 

clickた場合は、私がclickは、アレイ内で使用されている回数をカウントする方法を、次に4として定義されていますか? うまくいけばそれは理にかなっています。 ありがとう

答えて

1

これはCスタイルの配列で行う方法です。

int i; 
int count = 0; 
for(i = 0; i < ARRAYSIZE; ++i) 
{ 
    if(array[i] == click) 
     ++count; 
} 

ARRAYSIZEは、あなたの静的に割り当てられた配列、arrayあなたの配列変数の大きさであり、あなたが探している値をクリックしてください。 countでは、変数の数が保存されます。

15

質問をC++とタグ付けしたので、STLを使用したC++の答えは適切です。

int num = std::count(&array[0], &array[5], click); 

それがソートされていない場合は、線形検索が唯一の選択肢であるhttp://en.cppreference.com/w/cpp/algorithm/count

+2

フム。 '&array [5]'は実際に有効ですか?私は、deferencingとaddress-ofの使用が未定義の動作を引き起こすことがあることを知っています( '&(*(array + 5))')。 –

+2

@Oli: '&array [5]'の代わりに 'array + 5'を使ってみませんか?すなわち、... int num = std :: count(array、array + 5、click); ' – Nawaz

+0

はい、&array [5]は5要素配列に対して有効でなければなりません。サイズNの配列の場合、0からN-1の番号が付けられた要素がありますが、その要素にアクセスすると未定義の動作が発生しますが、要素Nのアドレスは有効なアドレスです。 – AAT

0

を参照してください。

1

countを使用できます。このような

サムシング(申し訳ありませんが、私はC++での練習のうちのよ):

#include <algorithm> 

void someFunction() { 
    int input[5]; 
    // initialize input with some values 
    int num = std::count(&input[0], &input[5], 4); 
} 
関連する問題