Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Выскакивает ошибка в C++

амир макажанов Профи (702), закрыт 2 года назад
выражение должно относиться к целочисленному типу или типу перечисления без области видимости

#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
int main()
{
setlocale(0, ".1251");
int rands=1;
double a=0, x=0, c=0, m=0;
int max = 1, min = 0, n;

cout << "Введите размер матрицы ";
cin >> n;
cout << "Введите значение a [0;1) для конгратуэтной функции: ";
cin >> a;
cout << "Значение c [0;1) ";
cin >> c;
cout << "Значение x [0;1) ";
cin >> x;
cout << "Введите m >= 2: ";
cin >> m;
double *arr = new double [n];
rands = (a * x + c) % m;
for (int i = 0;i<n;i++)
{
rands = (a * rands + c)%m;
arr[i] = (double)rands / m;
cout <<arr[i] << " ";
}

_getch();
}
подчерниваются а, х, с, m, в этой строке rands = (a * x + c) % m;
и в этой rands = (a * rands + c)%m; а, с , m
Лучший ответ
Зло Просветленный (39228) 2 года назад
a, x, c и m у тебя - double. И что же должно быть остатком от деления 11.3 на 2.2 ?
% применим только к целочисленным типам - int, например
амир макажановПрофи (702) 2 года назад
омагад, а есть мы сможем 0.5,например, поделить на 2?
Зло Просветленный (39228) амир макажанов, да. сохранишь результат в int - получишь 0, в double - 0.25
амир макажановПрофи (702) 2 года назад
мне нужно вывести рандомные числа о 0 до 1
Зло Просветленный (39228) амир макажанов, генери рандомные числа от 0 до 1000, результат дели на 1000.0
амир макажановПрофи (702) 2 года назад
спасибо, если кому то нужно будет Генератор случайных чисел конгратуетно
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
int main()
{
setlocale(0, ".1251");
int rands=1, m=0;
unsigned int a=0, x=0, c=0;
int max = 1, min = 0, n;

cout << "Введите размер матрицы ";
cin >> n;
cout << "Введите m >= 2: ";
cin >> m;
cout << "Введите значение a [0;m) для конгратуэтной функции: ";
cin >> a;
cout << "Значение c [0;m) ";
cin >> c;
cout << "Значение x [0;m) ";
cin >> x;
double *arr = new double [n];
rands = (a * x + c) % m;
for (int i = 0;i<n;i++)
{
rands = (a * rands + c)%m;
arr[i] = (float)rands / m;
cout <<arr[i] << " ";
}

_getch();
}
Остальные ответы
Николай Веселуха Высший разум (370810) 2 года назад
 #include  
#include
#include
using namespace std;
int main() {
uniform_real_distribution<> urd(0, 1);
mt19937_64 gen{ random_device()() };
auto rnd = urd(gen);
cout.setf(ios::fixed);
cout.precision(15);
cout << rnd << '\n';
system("pause > nul");
}
Похожие вопросы