Сформировать массив из заданного количества случайных целых чисел в заданном диапазоне - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Не могу въехать как написать эту задачу: Задана последовательность значений элементов некоторого массива до и после преобразования по некоторому правилу. Определите алгоритм преобразования и напишите программу, которая: 1) формирует массив из заданного количества случайных целых чисел в заданном диапазоне и выводит элементы массива на экран; 2) по определенному вами алгоритму преобразовывает этот массив и выводит на экран элементы преобразованного массива. 3) производит заданные вычисления (рекомендуется оформить в виде отдельной функции) и выводит результат на экран. Массив K = (5, –5, 4, 9, –7, –11, 0) преобразован к виду K = (0, 1, 0, 0, –1, –5, 0). Размер массива K - 21 элемент из диапазона [–56,56]. Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–1, 16]. Просто не понимаю куда и что, читаю статьи про массивы как об стенку горох.. буду признателен за подсказки и помощь в написании. Для начала как сформировать массив из заданного диапазона, в условии не понимаю по какому алгоритму преобразоваться массив и как это отобразить в программном коде.
Вот что то нашел похожее на мое задание и постарался адаптировать под себя.. ок допустим, верно адаптировал кхе кхе.. или все же чего то не хватает
Листинг программы
  1. #include "stdafx.h"
  2. #include "stdio.h"
  3. #include "math.h"
  4. #include "iostream"
  5. #include "time.h"
  6. #include "stdlib.h"
  7. const int N = 21;
  8. int random(int N) { return rand() % N; }
  9. int _tmain(int argc, _TCHAR* argv[])
  10. {
  11. system("CLS");
  12. int i, A[N], a = -56, b = 56, sum;
  13. for (i = 0; i < N; i++)
  14. A[i] = random(b - a + 1) + a;
  15. printf("\nmassiv1\n");
  16. for (i = 0; i < N; i++)
  17. printf("%4d", A[i]);
  18. printf("\nmassiv2\n");
  19. for (i = 0; i < N; i++)
  20. {
  21. if (A[i]<0) A[i] = 0;
  22. }
  23. A[i] = random(b - a + 1) + a;
  24. for (i = 0; i < N; i++)
  25. printf("%4d", A[i]);
  26. printf("\nsum\n");
  27. printf("%4d", A[i]);
  28. for (i = 0; i < N; i++)
  29. sum = 0;
  30. for (i = 0; i<N; i++)
  31. {
  32. if (A[i]>-16 && A[i]<6)
  33. sum += A[i];
  34. }
  35. printf("%4d", sum);
  36. system("PAUSE");
  37. return 0;
  38. }

Решение задачи: «Сформировать массив из заданного количества случайных целых чисел в заданном диапазоне»

textual
Листинг программы
  1. const int N = 21, MIN_NUM = -56, MAX_NUM = 56;//MIN_NUM - нижний предел диапазона значений, MAX_NUM - верхний предел
  2. int array[N];
  3. srand(time(0));
  4. for (int i = 0; i < N; ++i)
  5.     array[i] = rand() % (MAX_NUM - MIN_NUM + 1) + MIN_NUM; // общая формула для диапазонов, указанных в квадратных скобках

Объяснение кода листинга программы

  1. В первой строке объявляется константа N, которая задает количество элементов в массиве (21), и константы MIN_NUM и MAX_NUM, которые задают границы диапазона случайных чисел (-56 и 56 соответственно).
  2. Далее объявляется массив array типа int с фиксированным размером N.
  3. Затем инициализируется генератор случайных чисел srand(time(0)), который будет использоваться в коде.
  4. В цикле for, который выполняется N раз (от 0 до N-1), каждый элемент массива array заполняется случайным числом в заданном диапазоне. Формула для этого - array[i] = rand() % (MAX_NUM - MIN_NUM + 1) + MIN_NUM.
  5. В конце каждого элемента массива добавляется MIN_NUM, чтобы гарантировать, что все числа будут в заданном диапазоне.
  6. В конце цикла i увеличивается на 1, чтобы перейти к следующему элементу массива.
  7. В конце функции или программы не указано, что делает дальнейшие действия с массивом array.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы