Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 21:36   #1
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию Случайное вещественное число из указанного диапазона

Приветствую! Следующая программка запрашивает диапазон (целые числа) и выдаёт случайное вещественное число из него. Причём при первом запуске необходимо получать новое случайное число, но так как инициализация привязана ко времени, то и число получается почти одно и тоже. Как исправить? Я правда нашёл один выход - это вызывать random два раза подряд, но может быть можно как-то иначе?

Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

double random(int c, int d);

int main (int argc, char* argv[]) {
    int c, d;
    double result;

    srand(time(NULL));

    printf("Enter start of range:\n");
    scanf("%d", &c);
    printf("\nEnter start of range:\n");
    scanf("%d", &d);

    result = random(c, d);
    printf("\nResult = %.3f\n\n", result);

    return 0;
}

// random: возвращает вещественное число из указанного диапазона
double random(int y1, int y2) {
    // y = kx + b, y[y1, y2], x[0, 1]
    double x, y;
    int k, b;

    // точка x = 0, y = y1
    b = y1;

    // точка x = 1, y = y2
    k = y2 - b;

    x = (double)rand()/(RAND_MAX+1.0);

    y = (double)k * x + (double)b;

    return y;
}
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В матрице найти число положительных элементов указанной строки и умножить это число на элементы указанного столбца. (Паскаль) Julichka1k Помощь студентам 4 18.12.2011 20:35
Проверить текст на вещественное число xad_jek Помощь студентам 0 23.12.2010 22:26
Дано вещественное число X и целое число N (> 0). Вывести X – X3/3! + X5/5! – ... + (–1)NX2N+1/(2N+1)!? Ахилес Помощь студентам 2 20.05.2010 20:34
найти из указанного диапазона все простые числа мария2507 Microsoft Office Excel 11 03.04.2010 17:38
Преобразование даты в вещественное число nova-alex Общие вопросы Delphi 5 03.05.2007 10:51