怎么样产生8个随机数,要求:

来源:百度知道 编辑:UC知道 时间:2024/05/13 07:16:24
要求为:
1. 每个随机数都在[-0.5,0.5]内取值.
2. 8个随机数的和为1.

谢谢我是新手,对随机函数不是很熟悉.

main()
{float a[8],sum=0.0;
int i;
for(i=0;i<8;i++)
{a[i]=(float)(rand());//随即取数;
sum=sum+a[i];//把所有的数求和;
}
for(i=0;i<8;i++)
{a[i]=a[i]/sum; //将每个数除以和数,保证其和为1.此时,每个数的范围是0.0---1.0;
a[i]=a[i]-0.5;使每个数的范围在[-0.5,0.5];
printf("%f",a[i]);
}
}

你要小数点后面保留几位小数啊。
要保留两位 就sum=rand() % 50 这是 0到50之间的数 然后再除以100就可以了
然后第2个数就用 sum+=rand() % (100-sum)
类似第3个第4个 ..第8个