黑马程序员技术交流社区

标题: 运行结果问题 [打印本页]

作者: 杨胜男    时间: 2014-6-7 21:37
标题: 运行结果问题
class ArrayTest  
{class ArrayTest  {
        public static void main(String[] args)
        {
                //System.out.println("Hello World!");
                int[] arr = {1,14,15,16};
                getMin(arr);
                System.out.println(arr[0]);
        }

       
        }
        public static void getMin(int[] arr)
        {
                int min = 0;
                for(int x=0; x<arr.length; x++)
                {
                        if(arr[x]<=arr[min])
                                min = x;
                                min=0;
                }
                System.out.println(arr[1]);
        }

}
//一个问题,打印最小值的时候总是显示14,换过好几轮,只要是从小到大顺序的数组,总是打印第二个数

作者: 王琪    时间: 2014-6-7 21:43
System.out.println(arr[min]);试试
  1. public class java  {
  2.         public static void main(String[] args)
  3.         {
  4.                 //System.out.println("Hello World!");
  5.                 int[] arr = {1,14,15,16};
  6.                 getMin(arr);
  7.                 System.out.println(arr[0]);
  8.         }

  9.         public static void getMin(int[] arr)
  10.         {
  11.                 int min = 0;
  12.                 for(int x=0; x<arr.length; x++)
  13.                 {
  14.                         if(arr[x]<=arr[min])
  15.                                 min = x;
  16.                                 min=0;
  17.                 }
  18.                 System.out.println(arr[min]);
  19.         }

  20. }
复制代码

作者: 王琪    时间: 2014-6-7 21:57
我可能没理解您的问题;
我想到一个排序方法
  1. public class java  {
  2.         public static void main(String[] args)
  3.         {
  4.                 //System.out.println("Hello World!");
  5.                 int[] arr = {1,14,15,16};
  6.                 getMin(arr);
  7.                 System.out.println(arr[0]);
  8.                 paixu(arr);
  9.         }

  10.         public static void getMin(int[] arr)
  11.         {
  12.                 int min = 0;
  13.                 for(int x=0; x<arr.length; x++)
  14.                 {
  15.                         if(arr[x]<=arr[min])
  16.                                 min = x;
  17.                                 min=0;
  18.                 }
  19.                 System.out.println(arr[min]);
  20.         }

  21.         public static void paixu(int[] arr){
  22.                 int min;
  23.                 for(int i=0 ;i<arr.length-1 ;i++ ){
  24.                    for(int j=i+1 ;j<arr.length ;j++ ){
  25.                          if(arr[j]<arr[i]){
  26.                             min=arr[j];
  27.                             arr[j]=arr[i];
  28.                             arr[i]=min;         
  29.                           }
  30.                    }
  31.                 }
  32.                 for(int i=0 ;i<arr.length ;i++ ){
  33.                         System.out.print("从小到大排序"+arr[i]);
  34.                 }
  35.                 System.out.println();
  36.         }

  37. }
复制代码

作者: wangleixhlm    时间: 2014-6-7 22:14
在getMin方法中去掉min=0;,打印的时候System.out.println(arr[min]);
作者: cain    时间: 2014-6-7 22:37
  if(arr[x]<=arr[min])
                                min = x;
                                min=0;

你这么排序 有问题啊,搞不懂你为什么这么写 逻辑也很乱
作者: 杨胜男    时间: 2014-6-8 09:21
王琪 发表于 2014-6-7 21:57
我可能没理解您的问题;
我想到一个排序方法

问题解决了




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