大一c语言求解。
答案:2 悬赏:30 手机版
解决时间 2021-02-11 16:25
- 提问者网友:那叫心脏的地方装的都是你
- 2021-02-11 05:45
大一c语言求解。
最佳答案
- 五星知识达人网友:逐風
- 2021-02-11 07:06
你每次循环都重置了种子,导致rand()函数需要从头开始生成,而你的程序运行得又太快,在1s内就执行完毕了,导致每次传递给srand的time种子都是相同的,因而每次rand()生成的数都是相同的。解决方法:将srand拿到循环外即可。
另外,你的程序不能确保cnt数组元素的初值全部为0,需要用memset(cnt,0,sizeof(int)*100)先全部置0。追问把srand放到外面,不就是同一个种子了吗还有我那样初始化数组不行吗 不是也是初始化为吗初始化为0追答你没有搞清楚种子是做什么的。生成随机数的函数是rand而不是srand。
你也没有搞清楚={0}是什么意思。这样只是把数组首元赋值为0。其他元素是否为0取决于编译器行为。可能为0也可能不为0。
另外,你的程序不能确保cnt数组元素的初值全部为0,需要用memset(cnt,0,sizeof(int)*100)先全部置0。追问把srand放到外面,不就是同一个种子了吗还有我那样初始化数组不行吗 不是也是初始化为吗初始化为0追答你没有搞清楚种子是做什么的。生成随机数的函数是rand而不是srand。
你也没有搞清楚={0}是什么意思。这样只是把数组首元赋值为0。其他元素是否为0取决于编译器行为。可能为0也可能不为0。
全部回答
- 1楼网友:时间的尘埃
- 2021-02-11 08:19
如果那个rand是随机数的话,那这个程序 就是你随机了一个数,并把1000个数都赋了这个值,所以是这个结果
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯