#include<stdio.h>
#include<stdlib.h>
void main(void)
{
int a=rand()%10,b=rand()%10,c,d;
c=a>b?a:b;
d=a<b?a:b;
printf("a=%d,b=%d\n",a,b);
printf("c=%d,d=%d\n",c,d);
} //运行结果为什么是a=1,b=7
c=7,d=1
难道a不能=3,b不能=9吗
rand()会返回一随机数值,范围在0至RAND_MAX 间,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。
0~RAND_MAX每个数字被选中的机率是相同的。rand()%10 取出所得的随机数的个位。
扩展资料:
rand()函数使用延伸
若要生成 a 与 b 之间的随机实数,应使用: RAND()*(b-a)+a
如果要使用函数 RAND 生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=RAND()”,保持编辑状态,然后按 F9,将公式永久性地改为随机数。
rand( )用于产生一个伪随机的无符号整数。
rand()%10表示将产生的随机数对10求余,结果为余数,整体表示产生0到9的随机数。
用rand() % 10;来生成 0 到 9 之间的随机数这种方法是不可取的,比较好的做法是:
j=(int)(n*rand()/(RAND_MAX+1.0))产生一个0到n之间的随机数
#include<stdio.h>执行以上程序后生成如下序列:
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6 //再次执行仍然产生相同的随机数