您的位置首页百科问答

输入ex=3.0,d=1.0显示ex=1.000000,d=-107374176.000000,后续程序完全依靠ex和d的值运算

输入ex=3.0,d=1.0显示ex=1.000000,d=-107374176.000000,后续程序完全依靠ex和d的值运算

的有关信息介绍如下:

输入ex=3.0,d=1.0显示ex=1.000000,d=-107374176.000000,后续程序完全依靠ex和d的值运算

在使用rand()之前应该使用srand();设置随即种子.你的 r=float(rand())/float(RAND_MAX); p=sqrt(-2.0*log(r)); r=float(rand())/float(RAND_MAX); q=6.28318*r; m=ex+p*cos(q)*d;代码应该写在循环内部,否则循环执行时r p q m 都是不变的.//#include "stdafx.h"#include#include#include#include #includeint main(){ float ex;float d; printf("请输入正态分布参数:期望ex 标准差d\n"); scanf("%f,%f",&ex,&d); printf("ex=%f,d=%f",ex,d); float r,p,q,m;int i,j; printf("\n"); srand((int)time(0)); for(i=1;i<=20;i++) for(j=1;j<=10;j++) { r=float(rand())/float(RAND_MAX); p=sqrt(-2.0*log(r)); r=float(rand())/float(RAND_MAX); q=6.28318*r; m=ex+p*cos(q)*d; float x=m; { if(x>0)printf("%f",x); else printf("%f",-x); printf(" "); } } system("pause"); return 0;}