c语言生成整数型、浮点型还有双浮点型随机数
时间: 2024-09-24 15:19:57 浏览: 63
在C语言中生成整数、浮点数和双精度浮点数的随机数通常需要使用`<stdlib.h>`库中的函数以及相关的`<time.h>`库来设置随机数种子。这里是一些基本的例子:
1. **生成整数(int)**:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(0)); // 设置随机数种子
int random_int;
random_int = rand(); // 生成[0, RAND_MAX]范围内的随机整数
printf("Random integer: %d\n", random_int);
}
```
2. **生成浮点数(float)**:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h> // 需要这个头文件来获取M_PI用于范围调整
float random_float() {
float min = 0.0, max = 1.0; // 定义浮点数范围
return min + (max - min) * ((float)rand() / RAND_MAX); // 使用线性映射到指定区间
}
int main() {
srand(time(0));
float random_float_num = random_float();
printf("Random float: %.2f\n", random_float_num);
}
```
3. **生成双精度浮点数(double)**:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double random_double() {
double min = 0.0, max = 1.0; // 双精度浮点数范围
return min + (max - min) * ((double)rand() / RAND_MAX);
}
int main() {
srand(time(0));
double random_double_num = random_double();
printf("Random double: %.17g\n", random_double_num);
}
```
注意,`srand()`函数用于初始化随机数生成器,而`rand()`返回的是未经过调整的伪随机数。为了获得更均匀分布的随机数,可以按照上述的`random_float`和`random_double`函数那样对结果进行缩放。
阅读全文