急求C语言高手帮忙改改程序!!!!!!!!!!

#include<stdlib.h>
#include<stdio.h>
void main()
{
int i,k,range,n,a[100],b[100],flag=0;
double min,max,q[1000000000000],p;
long t;
double j;
min=7;
max=20;
range=max-min;
srand(2);
do{ for(i=0;i<100;i++)
{
n=rand();
j=((double)n/(double)RAND_MAX);
n=(int)(j*(double)range);
n+=min;
a[i]=n;
}
for(i=0;i<99;i++)
{ for(k=i+1;k<100;k++)
if(a[i]==a[k]) flag=1;flag=0;}
}while(flag);
for(i=0;i<100;i++)
{min=60;
max=140;
range=max-min;
srand(3);
do{ for(i=0;i<100;i++)
{
n=rand();
j=((double)n/(double)RAND_MAX);
n=(int)(j*(double)range);
n+=min;
b[i]=n;
}
for(i=0;i<99;i++)
{ for(k=i+1;k<100;k++)
if(b[i]==a[k]) flag=1;flag=0;}
}while(flag);
for(i=0;i<100;i++)
q[i]=1667*a[i]/10000*a[i]/10000/(317190*a[i]/10000*a[i]/10000+0.81*(0.005*b[i]-0.1)*(22.894*a[i]/10000+0.3822-54690*a[i]/10000*a[i]/10000)-0.3773);
p=q[0];
if(q[i+1]>q[i]) p=q[i+1];
}
printf("%g",p);
}
Q=1667*a*a/{317190*a*a+0.81*(0.005*b-0.1)*(22.894*a+0.3822-54690*a*a)-0.3773}
a是0.0007到0.002范围的素数同余随机数;
b是60到140范围的混合同余随机数;
求Q的最大值;并且得到最大值时的a和b。
素数同余随机数的产生办法是Xj=aXj-1(mod(m))
和(m)取余后,赋给Xi,后可得[0 ,1]区间均匀随机数:rj=Xj/m;
混合同余随机数产生方法Xj=(Xj-1+C)(mod(m)).

把分songwoba
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-05-26
口水
你怎么不告诉我题目啊怎么该
第2个回答  2007-05-26
麻烦你把问题讲清楚一点

首先把题目告诉我们
然后告诉我们你的程序是有错误还是编译结果不对

OK?
另外你的数组q[1000000000000]定义的太大了,哪有这么大的内存空间啊
相似回答