返回信息流这个程序为什么在高斯.txt里面生成的数据都是0了呢?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
double y;
void save()
{
FILE*fp;
int i;
if ((fp = fopen("高斯.txt", "w")) == NULL)
{
printf("cannot open file data.txt\n");
return;
}
for (i = 0; i<1000; i++)
{
fprintf(fp, "%lf \n", y);
}
fclose(fp);
}
double Rand(double avg, double var) /*用sum-of-12方法产生高斯随机数的子函数*/
{
int j;
double u, x = 0, z;
for (j = 0; j < 12; j++) /*产生12个均匀随机数*/
{
u = (double)rand() / RAND_MAX;
x = x + u;
}
z = (x - 6.0)*sqrt(var) + avg;
return z;
}
int main() /*生成1000个高斯随机数*/
{
int i;
double y;
double avg, var;
srand(time(NULL));
printf("请输入均值和方差:");
scanf_s("%lf,%lf", &avg, &var);
for (i = 0; i < 1000; i++)
{
y= Rand(avg, var);
save();
printf("%lf ", y);
if (i % 5 == 0)
printf("\n");
}
system("pause");
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #83398同步于 2014/10/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[问题]请教各位大神这个程序哪里有问题???
PasserbyA
2014/10/17镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
请问能详细解释下么?。。
【 在 xiaobing307 的大作中提到: 】
: 因为save函数里面用到的y,是全局变量y,初始化为0后一直没变,并不是main函数里面的y
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
double y[1000];
void save()
{
FILE*fp;
int i;
if ((fp = fopen("高斯.txt", "w")) == NULL)
{
printf("cannot open file data.txt\n");
return;
}
for (i = 0; i<1000; i++)
{
fprintf(fp, "%lf \n", y[i]);
}
fclose(fp);
}
double Rand(double avg, double var) /*用sum-of-12方法产生高斯随机数的子函数*/
{
int j;
double u, x = 0, z;
for (j = 0; j < 12; j++) /*产生12个均匀随机数*/
{
u = (double)rand() / RAND_MAX;
x = x + u;
}
z = (x - 6.0)*sqrt(var) + avg;
return z;
}
int main() /*生成1000个高斯随机数*/
{
int i;
//double y;
double avg, var;
srand(time(NULL));
printf("请输入均值和方差:");
scanf_s("%lf,%lf", &avg, &var);
for (i = 0; i < 1000; i++)
{
y[i]= Rand(avg, var);
//save();
printf("%lf ", y[i]);
if (i % 5 == 0)
printf("\n");
}
save();
system("pause");
}
【 在 WenDing 的大作中提到: 】
: 请问能详细解释下么?。。