C语言产生互不相同的10个随机数数
程序如下:为什么有的时候还是会有重复?#include"stdio.h"#include"stdlib.h"main(){inta[10],i,j;srand(time(...
程序如下:为什么有的时候还是会有重复?
#include "stdio.h"
#include "stdlib.h"
main()
{
int a[10],i,j;
srand(time(0));
for(i=0;i<10;i++)
{a[i]=rand()%10;
for(j=0;j<i;j++)
{if((i!=0)&&(a[i]==a[j]))
{ a[i]=rand()%10;
j=0;
}
}
}
printf("the num is:");
for(i=0;i<10;i++)
printf("\n%d\n",a[i]);
} 展开
#include "stdio.h"
#include "stdlib.h"
main()
{
int a[10],i,j;
srand(time(0));
for(i=0;i<10;i++)
{a[i]=rand()%10;
for(j=0;j<i;j++)
{if((i!=0)&&(a[i]==a[j]))
{ a[i]=rand()%10;
j=0;
}
}
}
printf("the num is:");
for(i=0;i<10;i++)
printf("\n%d\n",a[i]);
} 展开
5个回答
展开全部
当然会有重复。
你的随机数是1-10,所以111%10等于1,11%10也等于1呀
如果你算0-65535的随机数,那就重复的几率小了,但也还是会重复的
你的随机数是1-10,所以111%10等于1,11%10也等于1呀
如果你算0-65535的随机数,那就重复的几率小了,但也还是会重复的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
--
2022-12-05 广告
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有...
点击进入详情页
本回答由--提供
展开全部
j=0; 之后要做一个j++变成1了,所以改成j=-1;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上说的没错,应该能发现:出现重复数字时,都是与第一个数字重复
也就是说没有与a[0]判断
也就是说没有与a[0]判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上基本正确,主要错误是j=0,未考虑到j++
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int a[10],i,j;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
{
a[i]=rand()%10;
for(j=0;j<i;j++)
{
if(a[i]==a[j]){
a[i]=rand()%10;
j=-1;
}
}
}
printf("the num is:");
for(i=0;i<10;i++)
printf("\n%d\n",a[i]);
}
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int a[10],i,j;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
{
a[i]=rand()%10;
for(j=0;j<i;j++)
{
if(a[i]==a[j]){
a[i]=rand()%10;
j=-1;
}
}
}
printf("the num is:");
for(i=0;i<10;i++)
printf("\n%d\n",a[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
#include "stdlib.h"
main()
{
int a[10],i,j;
srand(time(0));
for(i=0;i<10;i++)
{
a[i]=rand()%10;
for(j=0;j<i;j++)
{
if(a[i]==a[j])
{
a[i]=rand()%10;
j=-1;/*for下一次循环之前,自动执行j++*/
}
}
}
printf("the num is:");
for(i=0;i<10;i++)
printf("\n%d",a[i]);
}
#include "stdlib.h"
main()
{
int a[10],i,j;
srand(time(0));
for(i=0;i<10;i++)
{
a[i]=rand()%10;
for(j=0;j<i;j++)
{
if(a[i]==a[j])
{
a[i]=rand()%10;
j=-1;/*for下一次循环之前,自动执行j++*/
}
}
}
printf("the num is:");
for(i=0;i<10;i++)
printf("\n%d",a[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询