C:创建随机生成的整数,将它们存储在数组元素中,并打印每个元素中存储的整数数目

时间:2018-11-10 20:48:25

标签: c arrays element random-seed

我是C的新手(通常是编程人员),发现如何操作数组几乎是很难理解的(我知道数组是什么)。

我正在尝试编写一个程序,该程序在范围(1-50)中生成 100个随机整数,并将其存储在数组元素中(1-10、11 -20、21-30、31-40和41-50),并打印存储在每个元素中的随机生成的整数的数量,即

  • 1-10 = 20
  • 11-20 = 30
  • 21-30 = 21
  • 31-40 = 19
  • 41-50 = 20

到目前为止,我能提出的最好的建议是:

void randomNumbers
{
    int count[ARRAY_LENGTH];

    for (int i = 0; i < ARRAY_LENGTH; i++)
    {
        count[i] = 0;
    }

    for (int i = 0; i < ARRAY_LENGTH; i++)
    {
        count[i] = rand() % 50 + 1;
    }


    for (int i = 0; i <= ARRAY_LENGTH - 1; i++)
    {
        printf("Index %d -> %d\n", i, count[i]);
    }
}

enter image description here

上面写着“元素1 =随机数,元素2 =随机数”等。

我不知道该怎么做

  • 将随机生成的整数存储在数组的元素中
  • 将随机生成的整数划分为相应的整数 元素
  • 告诉程序以打印每个中生成的整数数量 元素范围

1 个答案:

答案 0 :(得分:1)

以下是生成100个随机整数并将其根据其值分为几类的代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
  int i, temp;
  int a[5]; // array to store the frequency
  for(i=0;i<5;i++)
   a[i]=0;
  srand(time(0));  // for generating new random integers on every run
  for(i=0;i<100;i++)
  {
    temp = (rand()%50) + 1; // generates random integers b/w 1 to 50
    a[(temp-1)/10]++;
  }
  for(i=0;i<5;i++)
    printf("%d->%d  = %d\n",i*10+1,(i+1)*10,a[i]); //printing in the desired format
  return 0;
}