C语言生成0到5的随机数 程序应该怎么写~
这只是一个伪随机而已,1~5 出现的概率并不相等
#include stdio.h
#include time.h
#include stdlib.h
void main()
{
srand (time(NULL));
printf(“%d”,rand()%6);
}
这只是一个伪随机而已,1~5 出现的概率并不相等
c语言,求0~7中任意随机取5个不同的数的组合算法
//敢问,那错了?
#include stdio.h
#include stdlib.h
#include time.h
void main()
{
int i = 0, j = 0;
int a[5];
srand((unsigned)time(NULL));
for (i = 0; i 5; ++i)
{
a[i] = rand()%8;
for (j = 0; j i; ++j)
{
if (a[j] == a[i]) break;
}
if (j i)
{
i–;
}
}
printf(“此次组合为:”);
for (i = 0; i 5; ++i)
{
printf(“%d “, a[i]);
}
printf(“\n”);
}
//打印出所有的组合种类:
#include stdio.h
#include stdlib.h
#include time.h
void main()
{
int i,j,k,m,n;
int num = 0;
printf(“所有组合如下:\n”);
for (i = 0; i 8; ++i)
{
for (j = 0; j 8; ++j)
{
if (i == j) continue;
for (k = 0; k 8; ++k)
{
if ((i == k)||(j == k)) continue;
for (m = 0; m 8; ++m)
{
if ((i == m)||(j == m)||(k == m)) continue;
for (n = 0; n 8; ++n)
{
if ((i == n)||(j == n)||(k == n)||(m == n)) continue;
printf(“%d %d %d %d %d\n”,i,j,k,m,n);
num++;
}
}
}
}
}
printf(“一共有%d种组合.\n”,num);
}
用c语言如何产生1到11中的5个随机数
#includestdio.h
#includestdlib.h
#includetime.h
int main()
{
int i;
for(i=0;i5;i++)
{
srand(i);
printf(“%d “,rand()%11+1);
}
return(0);
}
利用随机函数srand()、rand();
用c语言怎样产生随机数啊。。产生5个随机数。。范围1到11的。。如01,04,06,07,11,跪
估计你是不符合条件就一直随机了……直到随机到了为止
首先,确定你a的子集里面的元素个数,比如{a[1][1],a[6][5],a[3][5],a[3][7]}总共4个,把这4个元素单独组成一个新数组b[4],然后
srand((unsigned)time(null)); d
=
rand()%(b内元素个数,也就是4);开始随机
此时d显然满足条件,操作b[d]也就是操作你原来的符合条件的a[j][k]
c语言产生N个随机数
#include stdio.h
#include stdlib.h
#include time.h
void main(){
int i;
srand((unsigned)time(NULL));
for(j=1;j=5;j++)
printf(“%d”,rand()%10);
printf(“\n”);
}
随即产生数字,字符么就是把%d改成%c。产生几个随即数用循环i控制;
一个随即数有几个数字组成就是对rand()取模;
C语言随机数
random()产生五位数的很好做,可以这样
while(1)
{/*n保存的就是你要取的随机数*/
if(i=random(100000)9999)
{ n=i; break;}
}
因为我现在用的是VC++我只只能用rand(),所以现在不能检验,但应该没问题。
转换成字符也好做,我们定义一个函数inttochar(int n,char *s)其中n是要转换的数,s可以是指针也可以是数组,因为你要转换的是五位数,所以为了方便就直接定义一个长度位6(不是5,因为还要保存\0)的字符数组:
inttochar(int n,char *s)
{
for(i=4;i=0;i–)
{
s[i] = n%10 + 48; /*取个位的ASCII码,0的ASCII码是48*/
n/=10; /*去掉一位*/
}
s[5] = ‘\0’;
}
下面是vc++通过的一个检验程序:
#includestdlib.h
#includestdio.h
void inttochar(int n,char *s)
{
int i;
for(i=4;i=0;i–)
{
s[i] = n%10 + 48; /*取个位的ASCII码,0的ASCII码是48*/
n/=10; /*去掉一位*/
}
s[5] = ‘\0’;
}
void main()
{
int i,n;
char s[6];
while(1)
{
while(1)
{
i=rand();
if(i9999i100000)
{/*如果随机数在9999~100000之间则取之*/
n = i;break;/*不要忘了break*/
}
}
printf(“随机数为 n=%d\n”,n);
inttochar(n,s);
printf(“字符串为 s=%s”,s);
if(getchar()==’#’) break;/*按#号推出程序*/
}
}
祝您学习愉快!