Я невероятно новичок в 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]);
}
}
Это просто говорит: «элемент 1 = случайное число, элемент 2 = случайное число» и т. д.
Я не понимаю, как:
- Сохраните случайно сгенерированные целые числа в элементах массива
- Разделите случайно сгенерированные целые числа на соответствующий элемент
- Скажите программе вывести количество целых чисел, сгенерированных в каждом диапазоне элементов.
i <= ARRAY_LENGTH - 1;
более идиоматичен (и читабелен), чемi < ARRAY_LENGTH;
- person Weather Vane   schedule 10.11.2018r
находится в диапазоне [1,50], а затем вы хотите уменьшить значение с помощью выражения, которое дает0
, когдаr
находится в диапазоне 1..10, и дает 2, когдаr
находится в диапазоне 11..20 и т. д., то(r - 1) / 10
дает правильный результат. (Например,r == 1; (r - 1) / 10 == 0;
—r == 10; (r - 1) / 10 == 0;
—r == 11; (r - 1) / 10 == 1;
—r == 50; (r - 1) / 10 == 4;
— и т. д.) - person Jonathan Leffler   schedule 11.11.2018