刚开始学java
这是我写的代码
但输出的却还是有重复,求各位大神看看问题在哪!
import java.util.*;
class Ex01
{
public static void main(String args[])
{
int a[]=new int[7];
int i=0;
Random rd=new Random();
a[0]=rd.nextInt(7);
System.out.print(a[0]);
for(i=1;i<a.length;i++)
{
a[i]=rd.nextInt(7);
for(int j=0;j<=i;j++)
{
if(a[j]==a[i])
i=i-1;
break;
}
}
for(int k=1;k<i;k++)
{System.out.print(" "+a[k]);}
}
}
i=i-1;
直接就跳出了,要再判断减一之后还重不重复
public static void main(String args[])
{
int a[]=new int[7];
int i;
Random rd=new Random();
for(i=1;i<a.length;i++)
{
int i1 = rd.nextInt(7);//赋值的随机数
a[i] = i1;
while (true){//死循环 那这个数跟目前的数组里所有数比较
int num = 0;//为0 就没有重复跳出执行下一次
for (int j = 0; j < 7; j++) {//循环所有
if(a[j]==i1){//如果随机数和某一个位置的数相同
num=1;//改变为1 继续执行
i1 = i1-1;//随机数减一
}
}
if(num==0){//没有重复的 跳出 为数组赋值
a[i] = i1;
break;
}
}
}
for(int k=1;k<i;k++)
{System.out.print(" "+a[k]);}
}
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632