【问题标题】:New way to generet random numbers but生成随机数的新方法,但是
【发布时间】:2017-10-25 03:04:30
【问题描述】:

我试图找到 6 个数字,第一个是 10-100,其他五个数字是 1-10 我读到的关于生成新数字的文章对我来说应用起来有点复杂,所以我通过获取这些数字的一系列重复并将它们放入二维数组中,然后我使用 rand() 作为索引第一个数组参数,所以我可以找到随机数,但我有一个问题..我想将生成的数字放入数组中,因为我想稍后使用它们。

如果你能用简单的方式解释,我将不胜感激

include<sys/time.h>
#include<stdio.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h> 
#include<ctime>
#define max 1000

int main()
{    
    int o, gr1num1[max][1] ,n=6,q[max] ,i = 0, gr2num5[max][5];

    while(1)
    {       
        i++;
        gr2num5[i][4] = rand() % 10+1 ;
        if(i == 1000)
            break;
    }

    if (gr2num5 [i][4]!=0) 
        srand(time(NULL));

    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);
    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);
    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);
    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);
    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);

    printf("   \n\n\n /// %d /// ",o);

    while(1)
    {       
        i++;
        gr1num1[i][1] = rand() % 100+10;
        if(i == 1000)
            break;
    }

    printf("group 1 number %d",gr1num1 [rand()%500][1]);
}

【问题讨论】:

  • 解释...什么?
  • 如何将生成的数字放入数组中
  • 旁白:1):在第一次使用rand之前应该调用srand。 2)拥有#define max 1000,你应该使用它而不是if(i==1000)
  • 您的第二个while 循环将中断,因为您之前没有重置i = 0;。这是使用诸如if(i &gt;= max) 而不是if(i == max) 之类的测试来阻止失控代码的原因。
  • 当我改变你提到的代码时,它为第二个循环给出了 0

标签: c arrays random


【解决方案1】:

首先,您应该返回并重新阅读有关如何执行循环的 C 书籍,因为虽然语法正确,但您使用这些 while 循环的方式是不正确的。

这就是您的第一个 while 循环的外观。 i 的增量发生在循环结束时,因为数组的索引从 0 开始。

i=0;
while(i<max)
{
    gr2num5[i][4]= rand() % 10+1 ;
    i++;
}

但实际上最好是像这样的for 循环,因为它将初始化、条件和增量都包含在一个简洁的包中。第一部分 - 初始化 - 对于您的第二个 while 循环很重要,您的 i 值仍然是 1000,因为您没有将其重置为 0。

for(i=0;i<max;i++)
{
    gr2num5[i][4]= rand() % 10+1 ;
}

但是您需要 5 个值,因此您需要在彼此之间嵌套两个循环以像这样填充 gr2num5 数组。

for(i=0;i<max;i++)
{
    for(j=0;j<5;j++)
    {
        gr2num5[i][j]=rand() % 10+1 ;
    }
}

(注意:您将在顶部与 i 一起定义 j

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 2023-03-22
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多