小女子有一问题请校,关于随机数,问题没有解决,只好再发了!
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
main()
{ int x,y;
char array[5];
srand( (unsigned)time( NULL ) );
for(x=0;x<5;x++)
for(y=0;y<=48||y>=57;)
{ y=rand(); array[i]=y;}
for(i=0;i<5;i++)
printf("%c",array[i]);
printf("\n");
用以上程序产生的随机数是有重复的,如果想得到没有得复的数,该如何做?
问题点数:20、回复次数:5Top
1 楼imlovinit(婷婷)回复于 2003-12-01 16:56:56 得分 0
应该是这样:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
main()
{ int i,j;
char array[5];
srand( (unsigned)time( NULL ) );
for(i=0;i<5;i++)
for(j=0;j<=48||j>=57;)
{ j=rand(); array[i]=j;}
for(i=0;i<5;i++)
printf("%c",array[i]);
printf("\n");
getch();
}Top
2 楼bohut(●伯虎● )回复于 2003-12-01 16:58:14 得分 0
既然是随机数,当然会有重复的了,如果不想重复,你可以判断产生的随机数是否和先前产生的相同,如果相同就继续产生Top
3 楼imlovinit(婷婷)回复于 2003-12-01 17:00:43 得分 0
你可以判断产生的随机数是否和先前产生的相同,如果相同就继续产生?
能给些例子吗?Top
4 楼ZhangYv(迎着朝阳,走向地狱)回复于 2003-12-01 17:11:26 得分 0
做一个集合,如果产生的数在集合中则重新生成,否则就合格并把该数加入集合Top
5 楼quieter(believe in professional)回复于 2003-12-02 00:02:30 得分 20
用 48+rand()%10 就可产生48到57的随机数!
Top




