黑马程序员技术交流社区

标题: 看书遇到一个java习题,求解 [打印本页]

作者: Destiny    时间: 2012-3-5 16:40
标题: 看书遇到一个java习题,求解
  使用循环生成随机生成10个随机数并保存至数组中。再找出数组中最大值和最小值,输出到控制台
作者: 杨毅    时间: 2012-3-5 17:32
class RandomArr
{
        public static void main(String[] args)
        {
                double[] arr = new double[10];

                //生成随机数并添加

                for(int x = 0;x<10;x++)
                {
                        arr[x] = Math.random()*1000;
                }

               
                //对数组冒泡排序

                for (int x = 0;x< 10;x++ )
                {
                        for (int y = 0;y<9-x; y++)
                        {
                                if (arr[y]>arr[y+1])
                                {
                                        double temp = arr[y];
                                        arr[y] = arr[y+1];
                                        arr[y+1] = temp;
                                }
                        }
                }
                //最大值和最小值打印到控制台
                System.out.println("min: "+arr[0]);
                System.out.println("max: "+arr[9]);

        }       
}

我把随机数控制在1000以内了 ,这个随你控制
作者: 王亚男    时间: 2012-3-5 17:34
本帖最后由 qwert 于 2012-3-5 17:36 编辑
  1. public class RandomArray
  2. {
  3.          public static void main(String[] args)
  4.          {
  5.                 randomFunction(40);
  6.                
  7.          }

  8.         static void randomFunction(int n)
  9.         {
  10.             int[] arr = new int[10];
  11.                         System.out.print("[");
  12.                 for(int pos=0; pos<arr.length; pos++)
  13.                 {
  14.                         arr[pos]=(int)(Math.random()*n);//0~1中随机小数*你想控制的数字范围n强转为int
  15.                         if(pos!=arr.length-1)
  16.                         {
  17.                                 System.out.print(arr[pos]+",");
  18.                         }
  19.                         else
  20.                                 System.out.println(arr[pos]+"]");
  21.                        
  22.                 }
  23.                 System.out.println("Max="+getMax(arr));
  24.                 System.out.println("Min="+getMin(arr));
  25.         }
  26.                 //获取最大值
  27.         static int getMax(int[] arr)
  28.         {
  29.                 int max = 0;
  30.                 for (int x=1;x<arr.length ;x++ )
  31.                 {
  32.                         if(arr[max]<arr[x])
  33.                         {
  34.                                 swap(arr,max,x);
  35.                         }
  36.                 }
  37.                         return arr[max];
  38.         }
  39.          //获取最小值
  40.         static int getMin(int[] arr)
  41.         {
  42.                 int min =0;
  43.                 for (int x=1;x<arr.length ;x++ )
  44.                 {
  45.                         if(arr[min]>arr[x])
  46.                         {
  47.                                 swap(arr,min,x);
  48.                         }
  49.                 }
  50.                 return arr[min];
  51.         }
  52.                 //置换位置
  53.         static void swap(int[] arr,int a,int b)
  54.         {
  55.                 int temp = arr[a];
  56.                         arr[a] = arr[b];
  57.                         arr[b] = temp;
  58.         }
  59.        
  60. }
复制代码

作者: 王亚男    时间: 2012-3-5 17:43
总之,n的取值控制在int的取值范围内就行。
作者: Destiny    时间: 2012-3-5 20:37
杨毅 发表于 2012-3-5 17:32
class RandomArr
{
        public static void main(String[] args)

3Q!大神!:P
作者: Destiny    时间: 2012-3-5 20:38
qwert 发表于 2012-3-5 17:34

谢谢  正在看 呵呵!!
作者: 陈斌    时间: 2012-3-5 22:38
方法写下  类就不写了
public void MaxAndMin(int a[],int y)
{
         
         for(int i=0;i<y;i++)
{
         a[i]=new Random().nextInt(100);
}
         sort(a);
  System.out.println("min: "+a[0]);
                System.out.println("max: "+a[9]);


         
}
public static int[] sort(int arr[])
{
         
     for (int i = 0;i< 10;i++ )
     {
             for (int j = 0;j<9-i; j++)
             {
                     if (arr[j]>arr[j+1])
                     {
                             int temp = arr[j];
                             arr[j] = arr[j+1];
                             arr[j+1] = temp;
                     }
             }
     }
     return arr;

}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2