В dev c++ Сформировать и вывести ** экран массив, элементы которого заданы датчиком...

+831 голосов
5.3m просмотров

В dev c++ Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-19, 26] (размер массива произвольный). Найти произведение элементов с нечетными номерами.Входные данные размерность массива: 5Выходные данные (пример) -5 0 24 11 6 -720


Информатика (71 баллов) | 5.3m просмотров
Дано ответов: 2
+163 голосов

Ответ:

Объяснение:

Dev C++ - это IDE. Предположу, что имелось ввиду, что надо сделать на языке С++.

Код на скрине вместе с примерами работы.

============  

Не забывайте нажать "Спасибо", поставить оценку и, если ответ удовлетворил, то выберите его как "Лучший"

Успехов в учебе

(3.8k баллов)
+76 голосов

Как исповедующий подход на атомарное разбиение кода на функции/методы/классы, предпочитаю видеть код, в котором каждая операция выполняется в своей функции.

Это упрощает повторное использование кода, да и мыслить такой код проще, чем когда тебе в одной функции нужно отслеживать несколько состояний для их синхронизации.

В данном задании действие этого подхода видно слабо.

P.S. srand(time(nulptr)) и rand() - "плохой" способ получения случайных чисел, так как время находится под контролем пользователя и он может выставлять время специально. Но "хороший" способ реализовывать здесь смысла нет.

===========================

Если решение удовлетворило, не забудь отметить его как "Лучшее".

===========================

Код:

#include

#include

#include

int rand_range(int min, int max) {

   return std::rand() % (max - min + 1) + min;

}

int* random_sequence(int N, int min, int max) {

   int *arr = new int[N];

   for(auto i = 0; i < N; ++i) {

       arr[i] = rand_range(min, max);

   }

   return arr;

}

template

void print_sequence(const T * arr, size_t size) {

   for(auto i = 0; i < size; ++i) {

       std:: cout << arr[i] << " ";</em>

   }

}

long calculate_production(const int *arr, size_t size) {

   long accumulator = 1;

   for(auto i = 0; i < size; ++i) {

       if (i % 2 == 0) continue;

       accumulator *= arr[i];

   }

   return accumulator;

}

int main() {

   const int min_random = -19, max_random = 26;

   int N;

   std::cout << "How many number should we generate? N = ";</em>

   std::cin >> N;

   std::srand(std::time(nullptr));

   int *arr = random_sequence(N, min_random, max_random);

   print_sequence(arr, N);

   auto result = calculate_production(arr, N);

   std::cout << ":" << result;</em>

   delete[] arr;

   return 0;

}

(6.9k баллов)