Сформировать массив из заданного количества случайных целых чисел в заданном диапазоне - 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].
Просто не понимаю куда и что, читаю статьи про массивы как об стенку горох.. буду признателен за подсказки и помощь в написании.
Для начала как сформировать массив из заданного диапазона, в условии не понимаю по какому алгоритму преобразоваться массив и как это отобразить в программном коде.
Вот что то нашел похожее на мое задание и постарался адаптировать под себя..
ок допустим, верно адаптировал кхе кхе.. или все же чего то не хватает
Листинг программы
- #include "stdafx.h"
- #include "stdio.h"
- #include "math.h"
- #include "iostream"
- #include "time.h"
- #include "stdlib.h"
- const int N = 21;
- int random(int N) { return rand() % N; }
- int _tmain(int argc, _TCHAR* argv[])
- {
- system("CLS");
- int i, A[N], a = -56, b = 56, sum;
- for (i = 0; i < N; i++)
- A[i] = random(b - a + 1) + a;
- printf("\nmassiv1\n");
- for (i = 0; i < N; i++)
- printf("%4d", A[i]);
- printf("\nmassiv2\n");
- for (i = 0; i < N; i++)
- {
- if (A[i]<0) A[i] = 0;
- }
- A[i] = random(b - a + 1) + a;
- for (i = 0; i < N; i++)
- printf("%4d", A[i]);
- printf("\nsum\n");
- printf("%4d", A[i]);
- for (i = 0; i < N; i++)
- sum = 0;
- for (i = 0; i<N; i++)
- {
- if (A[i]>-16 && A[i]<6)
- sum += A[i];
- }
- printf("%4d", sum);
- system("PAUSE");
- return 0;
- }
Решение задачи: «Сформировать массив из заданного количества случайных целых чисел в заданном диапазоне»
textual
Листинг программы
- const int N = 21, MIN_NUM = -56, MAX_NUM = 56;//MIN_NUM - нижний предел диапазона значений, MAX_NUM - верхний предел
- int array[N];
- srand(time(0));
- for (int i = 0; i < N; ++i)
- array[i] = rand() % (MAX_NUM - MIN_NUM + 1) + MIN_NUM; // общая формула для диапазонов, указанных в квадратных скобках
Объяснение кода листинга программы
- В первой строке объявляется константа N, которая задает количество элементов в массиве (21), и константы MIN_NUM и MAX_NUM, которые задают границы диапазона случайных чисел (-56 и 56 соответственно).
- Далее объявляется массив array типа int с фиксированным размером N.
- Затем инициализируется генератор случайных чисел srand(time(0)), который будет использоваться в коде.
- В цикле for, который выполняется N раз (от 0 до N-1), каждый элемент массива array заполняется случайным числом в заданном диапазоне. Формула для этого - array[i] = rand() % (MAX_NUM - MIN_NUM + 1) + MIN_NUM.
- В конце каждого элемента массива добавляется MIN_NUM, чтобы гарантировать, что все числа будут в заданном диапазоне.
- В конце цикла i увеличивается на 1, чтобы перейти к следующему элементу массива.
- В конце функции или программы не указано, что делает дальнейшие действия с массивом array.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д