一个C语言题,有个地方不懂啊

yexingdehuxi 2012-03-13 10:25:07
6.编写一个产生1000个l到10范围内的随机数的程序。不必保存或打印数字,仅打印每个数被产生了多少次。让程序对10个不同的种子值进行计算。数字出现的次数相同吗?可以使用本章中的函数或ANSIC中的函数rand()和srand(),它们与我们的函数具有相同的形式。这是一个测试特定随机数发生器的随机性的方法。



#include <stdio.h>
#include <stdlib.h>

int main(void)
{
char i,seed[10]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int j,count[10];//存放1~10的10个统计量
for (i=0; i<10;i++)
{
for (j=0; j<10; j++)
count[j] = 0;
srand(seed[i]);
for (j=0; j<1000; j++)
count[ rand()%10 ]++;
printf("seed = %d:\n",seed[i]);
for (j=0; j<10; j++)
printf("%d: %d times:\t",j+1,count[j]);
printf("\n");
}

return 0;
}

我不懂的地方是这里:
for (j=0; j<1000; j++)
count[ rand()%10 ]++;
谁能给解释一下啊,最好详细点。
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yexingdehuxi 2012-03-13
  • 打赏
  • 举报
回复
嘿嘿,谢谢各位的回答,我已经懂了
nanjingnew4 2012-03-13
  • 打赏
  • 举报
回复
for (j=0; j<1000; j++)//循环1000次
count[ rand()%10 ]++;//count[0]到count[9]分别代表了1到10,rand()%10对随机数字取余,如果为6,那么count[6]++,那么count[6]=1,表示随机到了一次,以此类推
flyrack 2012-03-13
  • 打赏
  • 举报
回复
楼主应该是刚开始学习C语言 楼上的解释楼主应该不会明白的额
猪头小哥 2012-03-13
  • 打赏
  • 举报
回复
我大概看了下就是 计算每个数出现的次数吧~~好比随机出现的是1,那么就对这个1出现的次数加1。
面包大师 2012-03-13
  • 打赏
  • 举报
回复
rand()%10 这个算式是取随机数的,他会随机的等于0-10之间的任意一个数。。。所以。。。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧