//声明一个方法,返回一个数组,这个数组中保存了一注双色球号 //6个红球 1-33之间 需要排序,实现去重 //1个蓝球 1-16之间 //蓝球号码放在数组中最后一位 //并在函数中打印出双色球号码的明细 //红球:1 2 3 4....;蓝球:12
int [] arr_dbnum=dbcolornum(); //调用方法
System.out.print("红球:");
for(int i=0;i<arr_dbnum.length;i++) //输出
{
if(i<arr_dbnum.length-1)
System.out.print(arr_dbnum[i]+" ");
else
System.out.print("蓝球: "+arr_dbnum[i]);
}
public static int[] dbcolornum()
{
//赋初值
int []dbnum1=new int [7];
for(int i=0;i<7;i++)
{ if(i<6)
dbnum1[i]=(int)Math.floor(Math.random()*33+1);
else dbnum1[i]=(int)Math.floor(Math.random()*16+1);
}
//查重
int []dbnum2=dbnum1;
for(int m=0;m<6;m++)
{
for(int n=m+1;n<6;n++)
{
//红球查重
{
while(dbnum1[m]==dbnum2[n])
//查到重复值后重新生成一个随机数并且赋值,直到没有重复跳出循环
{ System.out.println("重复的值是:"+dbnum1[m]+",在"+n+"位重复");
dbnum1[n]=(int)Math.floor(Math.random()*33+1);
dbnum2[n]=dbnum1[n];
}
}
}
}
//冒泡排序
int temp=dbnum1[0];
for(int end=dbnum1.length-2;end>0;end--)
{
for(int k=0;k<end;k++)
{
if(dbnum1[k]>dbnum1[k+1])
{
temp=dbnum1[k];
dbnum1[k]=dbnum1[k+1];
dbnum1[k+1]=temp;
}
}
}
return dbnum1;
}
去重方法有漏洞,但目前解决不了,有可能在去重以后和遍历过的球重复但是几率比较小
冒泡排序后续学习附上链接----
|