回 帖 发 新 帖 刷新版面

主题:我是JAVA新手~~随机数问题

public class shuzu
{
    public static void main(String[] args)
    {
        
    /*
     实现功能:
     1、利用数组存储数据
     2、显示数组中的数据
     3、输出最大数值和最小数值
     4、利用冒泡排序法对数据进行排序并输出
*/
    
    int intshuzu[]={23,43,54,34,6,45,24};
                
        System.out.print("这几个数分别是:");
        for(int z=0;z<=6;z++)
        {
        System.out.print(intshuzu[z]+ " ");    
        }
            
    System.out.println('\n');        
        
    //以下判断和输出最大值和最小值
        int max=0;
        int min=0;
        for(int i=0;i<=6;i++)
        {
            if (i==0) 
            {
            max=intshuzu[i];
            min=intshuzu[i];
            }
            
            if (intshuzu[i]>max) max=intshuzu[i];
            if (intshuzu[i]<min) min=intshuzu[i];
        }
        
        System.out.println("这几个数中最大的是:" + max);
        System.out.println("这几个数中最小的是:" + min);
        System.out.println(' ');
    //以下实现排序
        int c=0;
        for(int x=0;x<=6;x++)
        {
            for (int j=0;j<=5-x;j++ )
            {
                if (intshuzu[j]> intshuzu[j+1])
                {
                //以下实现swap a,b  对两个数的值进行交换
                    c=intshuzu[j];
                    intshuzu[j]=intshuzu[j+1];
                    intshuzu[j+1]=c;
                }
            }
        }
        
    //以下输出排序
        System.out.print("从小到大顺序为:");
        for(int y=0;y<=6;y++)
        {
        System.out.print(intshuzu[y]+ " ");    
        }
        System.out.println("");
    //以下输出排序
        System.out.print("从大到小顺序为:");
        for(int w=6;w>=0;w--)
        {
        System.out.print(intshuzu[w]+ " ");    
        }
        System.out.println('\n');
    }
}


--------------------
    怎么吧程序内的int intshuzu[]={23,43,54,34,6,45,24};
    intshuzu的值由随机产生
    
    小弟新手,请各位大哥指点!

回复列表 (共7个回复)

沙发


使用Rondom,k=Random.intshuzu[i], k是随便的对象,试试看,能行吗,我也不是很好的

板凳


不是那样的,错了,应该是 int k=Math.random()*intshuzu[i]

3 楼

Math.random()产生的是DOUBLE数据
怎么转换成int呢?
本人学JAVA还不到3天 请各位大哥大姐帮下忙

(以前学过QBASIC\VB)

4 楼

int intshuzu[]= new int [7];
for(int i=0;i<intshuzu.length;i++)
{
  intshuzu[i]=(int)(Math.random()*100+1);  //产生1-100之间的随机数依次存入数组中
  System.out.print(intshuzu[i]+"\t");
}
System.out.println();

5 楼


用该方法Math.random(),然后转化成int型

6 楼

import java.util.*;
public class Hello
{
 public static void main(String[] args)
{
 Random g=new Random();
 int shuzu[]=new int[7];
 for(int i=0;i<7;i++)
 shuzu[i]=(int)(g.nextInt(100)+1);
 for(int e:shuzu)
 System.out.println(e);
}
}
用这种方法也可以实现

7 楼


int i=1+(int)(Math.random()*50);

以上这条语句是用来求出1到50 之间任意一个整数,并将其赋给i,(int)是用来强制类型转换的,就是将double类型的(Math.random()*50)转换成整型数据,你想求任意范围的随机数只需改变区间(1,50)即可.

我来回复

您尚未登录,请登录后再回复。点此登录或注册