C: Создать случайно сгенерированные целые числа, сохранить их в элементах массива и вывести число целых чисел, хранящихся в каждом элементе. - PullRequest
0 голосов
/ 10 ноября 2018

Я невероятно новичок в C (и программировании в целом), и почти невозможно понять, как управлять массивами (я знаю, что такое массив).

Я пытаюсь написать программу, которая генерирует 100 случайных целых чисел в диапазоне (1-50) , сохраняет их в элементах массива (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 голосов
/ 11 ноября 2018

Ниже приведен код, который генерирует 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;
}
...