我如何随机化这些数字?

时间:2016-02-23 02:49:39

标签: c++ loops random

所以我的作业分配是创建一个循环函数,只打印0到200的偶数。我需要创建100个随机和偶数(每行只能打印10个数字)。我在随机化数字时遇到麻烦。这就是我到目前为止所做的:

// Loop from 0 to 200 
for (i = 2, j = 1; i <= 200; i++, j++)
{
    // Print even numbers(divisible by 2)
    if (i % 2 == 0)
    {
        cout << i;
    }

    // Create new line after printing 10 numbers
    if (j == 20)
    {
        j = 0;
        ofs << '\n';
    }
}

3 个答案:

答案 0 :(得分:2)

#include <stdio.h>      /* printf, scanf, puts, NULL */
#include <stdlib.h>     /* srand, rand */
#include <time.h>       
int main()
{ 
    srand (time(NULL));
    int even = rand() % 200;
    if (even % 2 == 0)
    {
        cout<<even;
    }
}

答案 1 :(得分:1)

这是一些快速代码,以随机顺序打印100个偶数[0..200]而不重复它们:

#define PRIME       7879    /* Some big prime number (>> 100)       */
#define NUMS        100     /* Number of values to process          */
#define PRINT_GROUP 10      /* Number of values printed on a line   */

int main()
{
    int number = rand() % NUMS;
    int i;
    for (i = 0; i < NUMS; i++) {
        printf("%d%c", 2*number, (i + 1) % PRINT_GROUP == 0 ? '\n' : ' ');
        number = (number + PRIME) % NUMS;
    }
    return 0;
}

答案 2 :(得分:0)

除此之外,您的代码还有一段距离。 以下是一些可能让其他程序员感到困惑的事情(无论如何,如果你对自己的风格感到满意,那就很好)

&#34; for(i = 2,j = 1; i <= 200; i ++,j ++)&#34; 2变量有点奇怪, 尝试只使用一个变量。 ..就这样做:

int j = 1;
for (i = 2; i <= 200; i++) {
j++;

//Code

if (j == 20) {
   j = 0; //etc.
}

}

除此之外&#34; J&#34;看起来很熟悉&#34;我&#34;所以这可能会让其他人感到困惑。试着把它称为“#34;计算&#34;”,这非常标准。