不太明白你什么意思,可能想简单了
public class Xuan{
public static void main(String[] args){
int[] aa=new int[7];\\占用8个号码
aa[0]=37; \\初始为37
int d=7; \\设置最小号码
int c =37;
for (int i=0;i<7;i++)
{
while(c=(int)(Math.random()*c))<d); \\取一个随机号码
aa[i]=c; \\aa[i]取值c
}
System.out.println("您所选的号码是:"+aa[0]+","+aa[1]+","+aa[2]+","+aa[3]+","+aa[4]+","+aa[5]+","+aa[6]);
} }
public class Xuan{
public static void main(String[] args){
int[] aa=new int[7];\\占用8个号码
aa[0]=37; \\初始为37
int d=7; \\设置最小号码
int c =37;
for (int i=0;i<7;i++)
{
while(c=(int)(Math.random()*c))<d); \\取一个随机号码
aa[i]=c; \\aa[i]取值c
}
System.out.println("您所选的号码是:"+aa[0]+","+aa[1]+","+aa[2]+","+aa[3]+","+aa[4]+","+aa[5]+","+aa[6]);
} }
1。 int[] aa=new int[7];\\占用8个号码
不是7个号码吗?
2。for (d=7;d<0;d--){ \\循环1
d<0 会有效果吗?是 d>0 把
还有一些细节问题,比如如果一直c<d,
还有是算法上的一点问题,i--和d++界限
可能会有数组越界异常,也可能循环次数不够
还有
c=aa[i]; \\c也回到上次的值
也不用
主要就是i和d的限制,别的都没什么,多用if看看
public class Xuan
{
public static void main(String[] args)
{
int[] aa=new int[10];
int d=7; //设置最小号码
int c =37;
int i=0;
int j=0;
int k=0;
int flag=0;
while(k<7)
{
flag=0;
c=(int)((Math.random())*c);
if (c==0)
{
c=c+(int)((Math.random())*36);
}
if(c>=7)
{
flag=1;
}
for(j=0;j<k;j++)
{
if(aa[j]==c)
{
flag=0;
}
}
if(flag==1)
{
aa[k]=c;
k++;
}
}
System.out.println("您所选的号码是:"+aa[0]+","+aa[1]+","+aa[2]+","+aa[3]+","+aa[4]+","+aa[5]+","+aa[6]);
}
}