Генерация случайных четных чисел - C (СИ)
Формулировка задачи:
Вывести массив из 30-ти случайных чисел с диапазона от 100 до 10000, при этом каждое число массива должно быть четным.
Вот пытался что-то сделать, но не верно:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
int main ()
{
int mas[30], rand_ch;
int i;
for (i=0;;i++){
rand_ch = 100 + rand() %10000;
if (rand_ch%2 == 0) { mas[i]=rand_ch}}
printf("Vektor: \n");
getch();
}Решение задачи: «Генерация случайных четных чисел»
textual
Листинг программы
#include <iostream>
#include<ctime>
int* arr(size_t size)
{
srand(time(0));
int* ret = new int[size];
for(int i = 0; i != size; ++i)
ret[i] = (rand() % 4951 + 50) * 2;
return ret;
}
void rout(int* arr, size_t size)
{
while(size--)
std::cout << *(arr++) << '\t';
}
int main()
{
setlocale( LC_ALL, "Russian" );
const size_t size = 30;
int* randArray = arr(size);
rout(randArray, size);
delete[] randArray;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со случайными числами и вводом/выводом
- Создание функции
arr, которая выделяет память под массив заданного размера и заполняет его случайными четными числами - Создание функции
rout, которая выводит элементы массива на экран через табуляцию - Установка русской локали для вывода
- Объявление константы
size- размера будущего массива - Вызов функции
arrдля создания массива заданного размера и сохранение указателя на первый элемент массива в переменнойrandArray - Вызов функции
routдля вывода элементов массива на экран - Вызов функции
delete[]для освобождения памяти, выделенной под массив