C语言生成随机数保存在文件中
时间: 2024-05-07 11:22:11 浏览: 106
生成随机数可以使用C语言中的rand()函数,需要先调用srand()函数设置随机数种子。保存到文件中可以使用标准库函数fopen()打开文件,然后使用fprintf()将随机数写入文件,最后使用fclose()关闭文件。
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, num;
FILE *fp;
srand(time(NULL)); // 设置随机数种子
fp = fopen("random.txt", "w"); // 打开文件
for (i = 0; i < 10; i++) {
num = rand() % 100; // 生成0~99的随机数
fprintf(fp, "%d\n", num); // 写入文件
}
fclose(fp); // 关闭文件
return 0;
}
```
运行程序后,会在当前目录下生成一个名为random.txt的文件,文件中包含10个随机数,每行一个。
相关问题
生成随机数到excel,c语言实现
生成随机数并将其写入Excel文件中,可以使用C语言的第三方库libxl来实现。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include "libxl.h"
int main()
{
// 创建Excel文件对象
BookHandle book = xlCreateBook();
if (book == NULL) {
printf("Failed to create Excel file!\n");
return -1;
}
// 添加一个工作表
SheetHandle sheet = xlBookAddSheet(book, "Sheet1", NULL);
if (sheet == NULL) {
printf("Failed to add worksheet!\n");
xlBookRelease(book);
return -1;
}
// 写入随机数到单元格中
int i, j;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
double value = (double)rand() / RAND_MAX;
xlSheetWriteNum(sheet, i, j, value, NULL);
}
}
// 保存Excel文件
if (xlBookSave(book, "random_numbers.xlsx")) {
printf("Failed to save Excel file!\n");
xlBookRelease(book);
return -1;
}
// 释放Excel文件对象
xlBookRelease(book);
printf("Excel file saved successfully!\n");
return 0;
}
```
这段代码会生成一个名为“random_numbers.xlsx”的Excel文件,并在第一个工作表中写入10行10列的随机数。你可以根据自己的需要修改代码。需要注意的是,在编译时需要链接libxl库,方法可以参考libxl的文档。
C语言生成1000个正太随机数,并用图表示它的分布
抱歉,作为AI语言模型,我无法生成图形,但是我可以提供C语言代码,您可以使用该代码生成1000个正态随机数,并使用其他工具绘制图形。
以下是C语言代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 1000
double rand_normal(double mean, double stddev)
{
double u = (double) rand() / RAND_MAX;
double v = (double) rand() / RAND_MAX;
double x = sqrt(-2.0 * log(u)) * cos(2.0 * M_PI * v);
return mean + stddev * x;
}
int main()
{
double mean = 0.0, stddev = 1.0;
double nums[N];
srand(12345); // 设置随机数种子
// 生成1000个正态分布随机数
for (int i = 0; i < N; i++) {
nums[i] = rand_normal(mean, stddev);
}
// 输出前10个随机数
for (int i = 0; i < 10; i++) {
printf("%.6f\n", nums[i]);
}
return 0;
}
```
此代码使用Box-Muller方法生成正态分布随机数。您可以将`mean`和`stddev`变量设置为所需的平均值和标准差。在此示例中,我们将它们设置为0和1。
要绘制分布图,您可以使用各种工具,例如Python的Matplotlib库或R语言。以下是Python代码示例:
```
import matplotlib.pyplot as plt
# 读取随机数文件
with open('nums.txt', 'r') as f:
nums = [float(line.strip()) for line in f]
# 绘制直方图
plt.hist(nums, bins=20, density=True)
# 绘制正态分布曲线
import numpy as np
from scipy.stats import norm
x = np.linspace(-4, 4, 100)
plt.plot(x, norm.pdf(x, loc=0, scale=1))
plt.show()
```
在此示例中,我们假设随机数已保存在名为`nums.txt`的文本文件中。我们使用Matplotlib绘制直方图,并在上面绘制正态分布曲线。您可以更改`bins`参数以更改直方图的柱数,更改`loc`和`scale`参数以更改正态分布曲线的位置和形状。
阅读全文