2016-07-07 6 views
0

私は10から15の間のランダムな量を生成する必要があります。また、20から50の間の乱数を作る必要があります。私は2番目の部分を持っていると思います。 ifステートメント条件。誰でも知っていますか?ここでは、これまでに私のコードです:すべての一定量の間にランダムな量の数値を生成する方法はありますか?

#include <iostream> 
#include <time.h> 
#include <stdlib.h> 
using namespace std; 
int main() 
{ 
srand((unsigned)time(0)); 
int random_integer; // Stores random number between 20 and 50 
int random_set; // Stores random amount of numbers 
for(){ // 
    random_integer = 20 + rand()%25; // Random number between 20 and 50 

    cout <<"Generating " << random_set << "random numbers" << random_set " (is a random number between 10 to 15)."; 
    cout << random_integer <<", "; 
    } 

    return 0; 
} 
+0

これはあなたの答えですか?>>> '出力= min +(rand()%(int)(max - min + 1))'それは複製ですhttp://stackoverflow.com/questions/5008804/生成する乱数からの整数 –

答えて

0

まず、これは20から45(排他的)に番号を生成します。

random_integer = 20 + rand() % 25; 

rand() % 30を使用し、それを修正するには。

:私は0からその番号に(ループ付き)10及び15と反復の間の乱数を生成した後、10

15から

間数字のランダム量を生成するために必要

int n = 10 + rand() % 5; 
int *numbers = new int[n]; //array that stores the random numbers 
for (int i = 0; i < n; i++) 
    numbers[i] = 20 + rand() % 30; //random number between 20 and 50 
+0

まだ学習していません。 –

+0

それでは配列を使わないでください。単に "int number = 20 + rand()%30;"ループの内側に印刷して印刷します。 –

0

キーは、あなたのモジュロ番号とあなたの開始番号です。あなたが包括したい場合

// rand() % 5 + 10 has a range of 10 to 10+5 (15) 
// rand() % 30 + 20 has a range of 20 to 20+30 (50) 
int numberCount = rand() % 5 + 10; 
for(int i = 0; i < numberCount; ++i) 
{ 
    int randomNumber = rand() % 30 + 20; 
    cout << randomNumber << endl; 
} 

、6を使用して、代わりに5の31および30

+0

私はいくつかの奇妙な数字を取得しています。ここでは私がやろうとしていることがあります:11の乱数を生成する(11は10から15の間の乱数です)... ... 11乱数20から50まで:26,23,48,32,44、 21,32,20,49,48,34 –

+0

奇妙な数字は何ですか? – rhowen4

1

は、他の回答は乱数を生成するためにrand()、より良い(と適切な)方法を使用してこれを行う方法をカバーしている一方C++(あなたが持っているはずのC++ 11以上のコンパイラがあれば)は<random>ヘッダー経由です。

#include <random> 
#include <iostream> 

int main(void) { 
    std::random_device rd; // seed for PRNG 
    std::mt19937 mt_eng(rd()); // mersenne-twister engine initialised with seed 
    const int range_min = 10; // min of random interval 
    const int range_max = 15; // max of random interval 
    // uniform distribution for generating random integers in given range 
    std::uniform_int_distribution<> dist(range_min, range_max); 

    const int n = 10; // number of random int's to generate 
    // call dist(mt_eng) to generate a random int 
    for (int i = 0; i < n; ++i) 
     std::cout << dist(mt_eng) << ' '; 
} 

そして、もちろん、あなたにも上記のようなコードを経由して自明nの値をランダム化することができます:ここで

は、与えられた範囲内のランダムなint Sを生成する方法です。

関連する問題