Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Вещественные случ. числа
#1
Имеем на борту:
PHP код:
<?php 
void tralala
()
{
double Ar[10];

for(
int i=0;i<10;i++)
{
srand((unsigned)time(0));
//Ar[i] = rand()%-5.9+10;
cout << Ar[i] <<"\n";
}
}
Нужно вогнать в массив случайные вещественные числа в диапозоне [-5.9;5.9].
Моим способ нихрена не выходит, rand генерирует целочисленные значения, а в данном примере выбивает ошибку о типе дабл(-5.9)

Нид фаст хелп (:
Ответ
#2
Код:
void tralala() {
    double Ar[ 10 ];
    
    srand( ( unsigned ) time() );
    for( int i = 0; i < 10; i++ ) {
        Ar[ i ] = ( rand() % 120 - 60 ) / 10;  
        cout << Ar[i] << eol;
    }    
}
Ответ
#3
Blakkky Написал:
Код:
void tralala() {
    double Ar[ 10 ];
    
    srand( ( unsigned ) time() );
    for( int i = 0; i < 10; i++ ) {
        Ar[ i ] = ( rand() % 120 - 60 ) / 10;  
        cout << Ar[i] << eol;
    }    
}
Выводит "0000000000" и т.д. с другими числами.
Нужно, что-бы выводило: "-1.2", "2.3" и т.д. в моем диапазоне.

Добавлено через 2 минуты
Ой епт, протупил, на след. строку не было перехода :facepalm:
Мне нужно, что бы с дробной частью выводило.
Ответ
#4
Например так:
[src=c++]double myRand(double min, double max)
{
return min + (double)rand()/(RAND_MAX/abs(min-max));
}

void main()
{
double Ar[100];
srand((unsigned)time(0));
cout.precision(14); // 14 знаков после запятой
for(int i = 0; i < 100; i++)
{
Ar[i] = myRand(-10, 10);
cout << Ar[i] <<"\n";
}
} [/src]

Не верю, что 100500 вариантов как это сделать не нагуглилось
Ответ
#5
Эм ... ошибка вылетает :|
http://rghost.ru/30279361.view

Добавлено через 1 минуту
int main()
Первый креш так и остался.
Ранд сного выепывается на вещ. признак(long long int)
Ответ
#6
В MVS без ошибок.
Свой абс написать для дабла.
Ответ
#7
Если у кого будет такой же вопрос:
в dev-cpp используется fabs вместо abs.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)