#include <stdio.h> /* printf() */
#include <stdlib.h> /* rand(), srand(), RAND_MAX */
#include <time.h> /* time() */
double randd(double min, double max) {
double delta = max - min; /* assume max > min */
double tmp = r / (RAND_MAX + 1.0); /* generate up to but excluding max */
return tmp * delta + min;
}
int main(void) {
printf("%f\n", randd
(4.2, 4.3)); printf("%f\n", randd
(0.0001, 0.0000001)); printf("%f\n", randd
(-0.1, 0.1)); printf("%f\n", randd
(2.7182, 3.1415)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+IC8qIHByaW50ZigpICovCiNpbmNsdWRlIDxzdGRsaWIuaD4gLyogcmFuZCgpLCBzcmFuZCgpLCBSQU5EX01BWCAqLwojaW5jbHVkZSA8dGltZS5oPiAvKiB0aW1lKCkgKi8KCmRvdWJsZSByYW5kZChkb3VibGUgbWluLCBkb3VibGUgbWF4KSB7CiAgICBpbnQgciA9IHJhbmQoKTsKICAgIGRvdWJsZSBkZWx0YSA9IG1heCAtIG1pbjsgLyogYXNzdW1lIG1heCA+IG1pbiAqLwogICAgZG91YmxlIHRtcCA9IHIgLyAoUkFORF9NQVggKyAxLjApOyAvKiBnZW5lcmF0ZSB1cCB0byBidXQgZXhjbHVkaW5nIG1heCAqLwogICAgcmV0dXJuIHRtcCAqIGRlbHRhICsgbWluOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBzcmFuZCh0aW1lKDApKTsKICAgIHByaW50ZigiJWZcbiIsIHJhbmRkKDQuMiwgNC4zKSk7CiAgICBwcmludGYoIiVmXG4iLCByYW5kZCgwLjAwMDEsIDAuMDAwMDAwMSkpOwogICAgcHJpbnRmKCIlZlxuIiwgcmFuZGQoLTAuMSwgMC4xKSk7CiAgICBwcmludGYoIiVmXG4iLCByYW5kZCgyLjcxODIsIDMuMTQxNSkpOwogICAgcmV0dXJuIDA7Cn0K