C++随机生成n个100~900之间的随机浮点数(小数点后两位),并存储在一维数组中,试求出其中位数
时间: 2024-03-17 10:45:55 浏览: 94
以下是生成n个100~900之间的随机浮点数,并求出其中位数的示例代码:
```c++
#include <iostream>
#include <random>
#include <algorithm>
int main() {
const int n = 10;
float arr[n];
// 随机数生成器
std::random_device rd;
std::mt19937 gen(rd());
// 均匀分布
std::uniform_real_distribution<float> dis(100.0, 900.0);
// 生成随机浮点数
for (int i = 0; i < n; ++i) {
arr[i] = roundf(dis(gen) * 100) / 100; // 保留小数点后两位
std::cout << arr[i] << " ";
}
std::cout << std::endl;
// 求其中位数
std::sort(arr, arr + n);
float median;
if (n % 2 == 0) {
median = (arr[n/2 - 1] + arr[n/2]) / 2;
} else {
median = arr[n/2];
}
std::cout << "其中位数为: " << median << std::endl;
return 0;
}
```
在这个例子中,我们定义了一个大小为n的浮点型数组arr,并使用std::random_device和std::mt19937生成器生成随机数种子。然后,我们定义了一个uniform_real_distribution对象,并将其范围设置为100~900之间的浮点数。通过调用dis(gen)生成n个随机浮点数,并保存到数组arr中。
在求其中位数时,我们使用了std::sort函数将数组从小到大排序,然后根据n的奇偶性求出其中位数。如果n为偶数,则中位数为数组中间两个数的平均值。如果n为奇数,则中位数为数组中间的数。
这个例子中,我们使用了roundf函数将生成的浮点数保留小数点后两位。
阅读全文