和你说的差不多。
为真执行i=i-1否则执行 a(b(i)) = 1
揣摩他的意思,a(33)应该是红球6个数都有哪些,可是他在生成蓝球的时候,根本也没对红球判断。
-----------------------------------------
当 b(i)有重复的时候,a(b(i))为真
不是永远为假
----------------------------------------
For i = 1 To 6 '循环6次
b(i) = Int(Rnd 33 + 1)'产生一个1-33的随即数
If a(b(i)) Then i = i - 1 Else a(b(i)) = 1
'如果a(b(i))为真代表有重复,i-- 退回重新产生一个随机数。如果a(b(i))为假,设置a(b(i))为真,就是给以后判断是不是已经产生过。
Next
不可能随机产生单词!!
只能随机产生字母
char s(void)
{
if(rand()%2)
return rand()%26+'a';
else
return rand()%26+'A';
}
想产生几个字母就调用几次
两位数:也就是10~99了
这里可以用生成随机数取余的方法得到,
比如任何整数除以100取余,那得到的是0~99的数,
那怎么得到10~99呢?
任何整数除以90取余,那得到的是0~89的数,再加上10,也就是得到10~99的数了
#include <stdlibh>
#include <stdioh>
#include <timeh>
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
{
k=rand()%90+10; //这就OK了
printf( " k=%d\n", k );
}
}
以上就是关于算法程序中的随机抽奖的"随机"程序是什么原理全部的内容,包括:算法程序中的随机抽奖的"随机"程序是什么原理、C语言程序如何随机产生一个单词呢、C语言写一个两位的随机数程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)