-5

このコードは、1 から 100 までの乱数を 100 個生成します。

#include <cstdlib>
#include <ctime>
#include <iostream>

using namespace std;

int main() {
     srand(time(NULL));

     for (int i = 0; i < 100; ++i)
     {
     cout <<  rand() % 100 + 1 << "\t";  //number between 1 and 100

if ((i+1) % 5 == 0)
            cout << endl;

     }


     return 0;
}

このコードに関数を追加して、出力で数値が繰り返される回数をカウントしたいと考えています。たとえば、この結果では-

56  96  75  53  67  
89  23  26  27  99  
30  29  2   63  27  
32  49  18  79  16  
56  31  95  46  82  
30  63  68  68  100 
7   23  95  81  75  
13  21  97  39  99  
48  68  28  49  83  
6   32  31  23  11  
98  30  93  93  76  
74  74  38  42  41  
37  48  16  84  81  
90  48  1   39  86  
52  86  6   79  86  
88  36  17  70  11  
27  19  40  71  63  
67  45  37  56  38  
29  45  85  44  80  
17  86  27  70  76  

数字の 86 が 3 回繰り返されました

数字の56が3回繰り返される

1回繰り返される数字の89 ...など

どうすればいいですか?

4

2 に答える 2

1

コメントが言ったことに沿って、非常に迅速で汚い方法は、100要素の整数配列を定義し(0に初期化)、乱数自体をインデックスとして使用し、乱数ごとに配列要素を1ずつ増やします生成された数。

于 2013-07-11T15:11:11.463 に答える