C语言:用rand函数 产生1到10范围内的随机数的问题,有点地方求教

要用rand()产生范围是1-10的随机数10个,count[10]={0};count[rand()%10+1]++;//可是这一句,count最大只能到count[9],无法统计10出现的次数,这个怎么办啊?

我总结一下我的问题:
rand每次产生数字的范围是:1~10中的任意一个。count[10]的下标范围是:count[0]~count[9]我想用这个句子来统计1~10中每个数字出现的次数:count[rand()%10+1]++;也就是count数组来统计从1~10这10个数字,每个数字出现的次数。

这样写,count[10] = {0};
int n ;
while(1)
{
    n = random();
    if(n%10 == 0 )
        count[9]++;
    else
        count[n%10-1]++;//注意count的下标是n%10-1不是n%10+1
}

追问

用if条件把原本产生的随机数0~9中的0归类为count[9]++;
剩下的1~9都减一,下标汇总为:0~8,那么最后还是0~9的下标统计啊。
除非把随机数产生的下标count[0]~count[9]一一对应为 针对 1-10中的每个数的出现此处的统计。
不知道我这样说的对不对

追答

你看if中的是n对10取余为0,那么n肯定是10的倍数,但是你要知道数组的下标是从0开始的,也就是说用count[0]统计1出现的次数,count[1]统计2出现的次数,....以此类推就好,用count[9]统计10出现的次数。使用的时候你注意点就行了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-30
count[rand()%10]++ 就行

count[0]中为1出现的次数
count[1]中为2出现的次数
...
第2个回答  2013-12-30

设有整数M和N,0 < M < N,欲生成 M <= n <= N,则有

n = rand()%(N - M + 1) + M;

/*

2:1

4:4

5:1

7:3

8:1


Press any key to continue

*/

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

#define M 1
#define NM 10
 
int main() {
    int i,a[NM + M] = {0};
srand((unsigned)time(NULL));
    for(i = 0; i < NM; ++i)
++a[rand()%(NM - M + 1) + M];
    for(i = M; i < NM; ++i)
        if(a[i]) printf("%d:%d\n",i,a[i]);
    printf("\n");
return 0;
}

本回答被网友采纳

C语言:用rand函数 产生1到10范围内的随机数的问题,有点地方求教
这样写,count[10] = {0};int n ;while(1){ n = random(); if(n%10 == 0 ) count[9]++; else count[n%10-1]++;\/\/注意count的下标是n%10-1不是n%10+1}

C#中怎样用Random产生1到10之间的随机数
rem 用Random产生1到10之间的一个随机数 set num=%random set \/a num=num%%10+1 echo %num 1到1000:rNumber.Next(1,1000);

C语言产生1~10随机小数
include <stdio.h> include <stdlib.h> include double rnd(void){ static int fg=1;int rd;if (fg) { srand(time(NULL));fg=0;} return (double)(rand()%900+100)\/100;} int main(void){ int i;for (i = 0; i < 10; i++) \/\/输出10个[1.00,10.00]区间内的小数 prin...

c语言,如何产生随机数
2. 使用rand函数生成随机数:`rand`函数返回一个伪随机数,这个数的范围是从0到`RAND_MAX`。如果要生成指定范围内的随机数,可以使用取模运算来实现。例如,要生成一个介于1到10之间的随机数,可以这样做:c int random_number = rand % 10 + 1; \/\/ 产生一个介于1到10之间的随机数 这里,`%...

c语言中rand()函数怎么用?
C语言中rand函数的使用方法如下:一、基本使用 rand函数是C语言中的一个标准库函数,用于生成随机整数。其基本语法为:c include \/\/ 包含stdlib库,该库包含rand函数 int rand; \/\/ 不需要传递参数 调用rand函数即可返回一个随机整数。二、生成特定范围的随机数 为了生成特定范围的随机数,可以使用rand...

C语言利用rand函数生成10个不同的介于1到10之间的整数放到数组a[10...
-2,-2,-2,-2,-2,-2};int temp,i=0,j;srand(time(NULL));\/\/用于产生随机数。do{int kk=0;temp=rand()%10+1;if(i==0){a[i]=temp;i++;}else{for(j=0;j<i;j++){if(temp==a[j])kk=1;}if(kk==0){a[i]=temp;i++;}}}while(a[9]==-2);for(i=0;i<10;...

用rand()函数生成10个随机数。(0-10)。存到数组num[10]中,然后输出这...
include <stdlib.h> include <stdio.h> include void main(){ int i,num[10],sum=0;time_t t;srand((unsigned) time(&t));for(i=0; i<10; i++){ num[i]= rand()%11;sum+=rand()%11;printf("%d ",num[i]);} printf("\\n%d\\n",sum);system("PAUSE");} ...

C语言如何产生10以内的随机数
h>#include int main(){ int a[10]\/*用于保存10个产生的随机数*\/, i; srand((unsigned int)time(NULL));\/\/设置当前时间为种子 for (i = 0; i < 10; ++i){ a[i] = rand()%10+1;\/\/产生1~10的随机数 } \/\/打印生成的随机数 for (i = 0; i < 10;...

C++编程产生1-10的随机数
函数名: rand 功 能: 随机数发生器 头文件:#include<stdlib.h> 定义: void srand (unsigned int seed);用 法: void rand(void);说明:我觉得这个很好用 程序例:(一个可以控制范围和确切几个随即数字的函数)include <stdlib.h> include <stdio.h> int main(void){ int i;int j,k;cout<<...

c语言中rand()函数怎么用?
rand(产生随机数) 相关函数 srand 表头文件 #include<stdlib.h> 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。...

相似回答