#include
#include
using namespace std;
int main()
{
const int size = 15;
int arr[size];
srand(time(NULL));
for (int i = 0; i < size; i++)
{
arr[i] = rand() % 100-50;
cout << arr[i]<<endl;
}
}
Вроде бы так но я хочу чтобы там вывелось вещественные числа т. е. дробные
Другие языки программирования и технологии
Как срандомить случайные вещественные числа N и занести их в массив? C++
#include <iostream>
#include <iomanip>
#include <utility>
#include <random>
using namespace std;
int rnd(int a, int b) {
if (a > b) swap(a, b);
uniform_int_distribution<> uid(a, b);
mt19937 gen{ random_device()() };
return uid(gen);
}
int main() {
const auto n = 10U;
int box[n] = { 0 };
const auto a = -50;
const auto b = 50;
for (auto& v : box) v = rnd(a, b);
for (const auto v : box) cout << setw(5) << v;
cout.put('\n');
system("pause");
}
#include <iomanip>
#include <utility>
#include <random>
using namespace std;
int rnd(int a, int b) {
if (a > b) swap(a, b);
uniform_int_distribution<> uid(a, b);
mt19937 gen{ random_device()() };
return uid(gen);
}
int main() {
const auto n = 10U;
int box[n] = { 0 };
const auto a = -50;
const auto b = 50;
for (auto& v : box) v = rnd(a, b);
for (const auto v : box) cout << setw(5) << v;
cout.put('\n');
system("pause");
}
Александр Иванов
Слишком мудрёно для новичков.
Фарход Гиесов
Эм.. вроде хотели вещественные =)
***нюня*** 'ersa'

см C++ < random > и uniform_real_distribution
https://en.cppreference.com/w/cpp/numeric/random/uniform_real_distribution
https://docs.microsoft.com/ru-ru/cpp/standard-library/uniform-real-distribution-class?view=vs-2019
Если нужно генерировать включая верхнюю границу обратите внимание на std::nextafter в первой ссылке.
Про srand и rand в современном C++ лучше забыть =)
В частности зная "seed" в srand можно узнать ("предсказать") всю последовательность "случайных" чисел. Более того в ряде случаев seed можно вычислить по нескольким генерируемым значениям.
https://en.cppreference.com/w/cpp/numeric/random/uniform_real_distribution
https://docs.microsoft.com/ru-ru/cpp/standard-library/uniform-real-distribution-class?view=vs-2019
Если нужно генерировать включая верхнюю границу обратите внимание на std::nextafter в первой ссылке.
Про srand и rand в современном C++ лучше забыть =)
В частности зная "seed" в srand можно узнать ("предсказать") всю последовательность "случайных" чисел. Более того в ряде случаев seed можно вычислить по нескольким генерируемым значениям.
для дробных юзай double или float, а не int
Maksim Yamaev
не помогает
Александр Иванов
Вообще, это так делается:
double range = from<to?to-from:from-to;
double shift = from<to?from:to;
srand(time(nullptr));
double randnum = (double)rand() / (double)RAND_MAX * range + shift;
double range = from<to?to-from:from-to;
double shift = from<to?from:to;
srand(time(nullptr));
double randnum = (double)rand() / (double)RAND_MAX * range + shift;
Вообще, это так делается:
double range = from<to?to-from:from-to; // диапазон
double shift = from<to?from:to; // сдвиг
srand(time(nullptr)); // инициализация рандома от времени
double randnum = (double)rand() / (double)RAND_MAX * range + shift; // рандомное число
Нужно подключить хэдеры:
#include < cstdlib >
#include < ctime >
Твой код с изменениями:
#include < cstdlib >
#include < ctime >
int main()
{
const int size = 15;
int arr[size];
double range = 50 - (-50); // диапазон
double shift = -50; // сдвиг
srand(time(nullptr)); // инициализация рандома от времени
for (int ix = 0; ix < size; ++ix)
{
arr[ix] = (double)rand() / (double)RAND_MAX * range + shift; // рандомное число
std::cout << arr[ix] << std::endl;
}
}
double range = from<to?to-from:from-to; // диапазон
double shift = from<to?from:to; // сдвиг
srand(time(nullptr)); // инициализация рандома от времени
double randnum = (double)rand() / (double)RAND_MAX * range + shift; // рандомное число
Нужно подключить хэдеры:
#include < cstdlib >
#include < ctime >
Твой код с изменениями:
#include < cstdlib >
#include < ctime >
int main()
{
const int size = 15;
int arr[size];
double range = 50 - (-50); // диапазон
double shift = -50; // сдвиг
srand(time(nullptr)); // инициализация рандома от времени
for (int ix = 0; ix < size; ++ix)
{
arr[ix] = (double)rand() / (double)RAND_MAX * range + shift; // рандомное число
std::cout << arr[ix] << std::endl;
}
}
Похожие вопросы
- Дано вещественное число R и массив размера N. Найти элемент массива, который наименее близок к данному числу
- Дан линейный массив чисел N. N вводит пользователь. Вывести все простые числа массива.
- Дано натуральное число n и вещественная матрица размера n X 9 . Плиз помогите(
- помогите? Дан массив целых чисел (n=15),
- Pascal . Дан массив вещественных чисел. Найти сумму элементов, номера которых являются простыми числами
- Как написать программу, которая будет представлять вещественное число в памяти компьютера
- Определить число k, которое отсутствует в неупорядоченном массиве чисел (0, 1,...k-1,k+1,...n) за один цикл
- как сделать массив из случайных чисел от 1 до 15 (размерность массива 4х4) что бы они не повторялись в VBA????
- Объявление массива С++. С клавиатуры вводится число n, потом надо задать массив nxn. Как это сделать?
- Представить заданные вещественные числа А и В в формате с плавающей точкой.