Сформировать массив из заданного количества случайных целых чисел в заданном диапазоне - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д