为了账号安全,请及时绑定邮箱和手机立即绑定

如图,请问为什么输出结果都是一个值?

如图,请问为什么输出结果都是一个值?

C++
侃侃尔雅 2023-03-20 20:16:22
#include"iostream"#include"stdlib.h"#include"math.h"#include"time.h"using namespace std;#define Size 10typedef struct gIndividualMsg{int index;double weight;double value;}IndividualMsg;IndividualMsg Individual[10];int gambleChoose(){int i,j;int choose;double l;srand((unsigned int)time(NULL));  double SumValue=45;double seed=(double(rand()%10000))/10000; //此处规定了重量,价值只能精确到小数点后两位cout<<seed<<endl; //xxxxfor(choose=0;choose<Size;choose++){ l=0;for(j=0;j<=choose;j++)l+=Individual[j].value/SumValue;if(l>=seed){ return choose;break;}}}int main(){srand(time(0));Individual[0].value=9;Individual[1].value=8;Individual[2].value=7;Individual[3].value=6;Individual[4].value=5;Individual[5].value=4;Individual[6].value=3;Individual[7].value=2;Individual[8].value=1;Individual[9].value=0;int a;for(int i=0;i<100;i++){ a=gambleChoose();cout<<a;cout<<endl;}return 0;}  
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

计算机太快了,每次循环的种子是一样的,将函数gambleChoose中的
srand((unsigned int)time(NULL)); 
语句删除就好了。

查看完整回答
反对 回复 2023-03-22
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信