黑马程序员技术交流社区

标题: 请教大神。倒序哪错了。 [打印本页]

作者: 田爽    时间: 2013-5-3 17:34
标题: 请教大神。倒序哪错了。
本帖最后由 田爽 于 2013-5-3 18:19 编辑

class test
{
        public static void main(String[] args)
        {
                int []arr = {1,2,3,4,5,6};
                //Dao(arr);
                printArray(arr);
        }

        public static void Dao(int []arr)
        {        
               
                for(int start=0,end=arr.length-1; start<end ; start++,end--)
                {
                        int temp = arr[start];
                        arr[start] = arr[end];
                        arr[end] = temp;
                }

        
        }

        public static void printArray(int []arr)
        {
                for (int x=0;x<arr.length ;x++ )
                {
                        System.out.print(arr[x]+' ');
                }
        }





}
作者: 吴传淦    时间: 2013-5-3 17:50
你把System.out.print(arr[x] + ' ');
改为System.out.print(arr[x] + " ");
class Test
{
        public static void main(String[] args)
        {
                int[] arr = {1,2,3,4,5,6};
                //Dao(arr);
                printArray(arr);
        }

        public static void Dao(int []arr)
        {        
               
                for(int start=0,end=arr.length-1; start<end ; start++,end--)
                {
                        int temp = arr[start];
                        arr[start] = arr[end];
                        arr[end] = temp;
                }

        
        }

        public static void printArray(int[] arr)
        {
                for (int x=0;x<arr.length ;x++ )
                {
                        System.out.print(arr[x] + " ");
                }
        }
}
作者: 孙宁    时间: 2013-5-3 17:50
你打印的时候写错了,
  System.out.print(arr[x]+' ');
应该是 System.out.print(arr[x]+" ");
应该是加一个字符串,你写成字符了
作者: 陈圳    时间: 2013-5-3 17:53
教你一个一劳永逸的调试方法,当你认为结果与实际想像不同时,就一步一步判断结果在哪一个环节出了错.
Dao方法内写一个输出语句,判断他们的值是否互换.互换了,为什么本身数组没有更改.
你这个数组只改变了形参内数组的位置.你可以加一个返回语句,把数组返回.
作者: 孙百鑫    时间: 2013-5-3 17:53
  1. class Test
  2. {
  3.     public static void main(String[] args)
  4.     {
  5.                  int []arr = {1,2,3,4,5,6};
  6.                  //Dao(arr);
  7.                                  printArr_1(arr);
  8.                                  bubbleSort_1(arr);
  9.                                  printArr_1(arr);
  10.     }
  11.         public static void bubbleSort_1(int[] arr)
  12.         {
  13.                 //外循环来控制次数.
  14.                 for(int x=0;x<arr.length-1;x++)
  15.                 {
  16.                         //内循环是相邻的连个元素进行比较.arr-x-1.是么每次比较最后一个数不用比.因为已经是最大值
  17.                         //-1是为了不让角标越界.比如第到第三个元素的时候和第四个比.在循环一次的时候就第四个 和第五个
  18.                         //比,如果没有第五个.角标就会发生越界异常.
  19.                         for(int y=0;y<arr.length-x-1;y++)
  20.                         {
  21.                                 //相邻的两个元素进行比较
  22.                                 if(arr[y]<arr[y+1])
  23.                                 {
  24.                                         int temp=arr[y];
  25.                                         arr[y]=arr[y+1];
  26.                                         arr[y+1]=temp;
  27.                                 }
  28.                         }
  29.                 }
  30.         }
  31.         //打印数组
  32.         public static void printArr_1(int[] arr)
  33.         {
  34.                 for(int x=0;x<arr.length;x++)
  35.                 {
  36.                         if(x!=arr.length-1)
  37.                                 System.out.print(arr[x]+",");
  38.                         //对最后一个元素判断是最后一个就换行
  39.                         else
  40.                                 System.out.println(arr[x]);
  41.                 }
  42.         }
  43. }
复制代码
哥们.看你代码很痛苦啊 - -.从新给你弄了一下.冒泡排序.应该能看懂.注释很多
作者: 彭波    时间: 2013-5-3 17:54
  1. class test
  2. {
  3.   public static void main(String[] args)
  4.   {
  5.     int[] arr = {1,2,3,4,5,6};
  6.                 Dao(arr);
  7.     printArray(arr);
  8.   }

  9.   public static void Dao(int[] arr)
  10.   {        
  11.     for(int start=0,end=arr.length-1; start<end ; start++,end--)
  12.     {
  13.         int temp = arr[start];
  14.         arr[start] = arr[end];
  15.         arr[end] = temp;
  16.     }
  17.   }

  18.    public static void printArray(int []arr)
  19.    {
  20.      for (int x=0; x<arr.length; x++ )
  21.      {
  22.        System.out.print(arr[x]+" ");//此处是双引号,单引号就是转换成字符了
  23.      }
  24.    }
  25. }
复制代码

作者: 金辉    时间: 2013-5-3 17:57

  1. class test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int []arr = {1,2,3,4,5,6};
  6.                 //Dao(arr);
  7.                 printArray(Dao(arr));
  8.         }

  9.         public static int[] Dao(int []arr)
  10.         {        
  11.                
  12.                 for(int start=0,end=arr.length-1; start<end ; start++,end--)
  13.                 {
  14.                         int temp = arr[start];
  15.                         arr[start] = arr[end];
  16.                         arr[end] = temp;
  17.                 }

  18.                 return arr;
  19.         }

  20.         public static void printArray(int []arr)
  21.         {
  22.                 for (int x=0;x<arr.length ;x++ )
  23.                 {
  24.                         System.out.print(arr[x]);
  25.                 }
  26.         }
  27. }
复制代码

作者: 田爽    时间: 2013-5-3 18:08
吴传淦 发表于 2013-5-3 17:50
你把System.out.print(arr[x] + ' ');
改为System.out.print(arr[x] + " ");
class Test

谢谢  再请教下  public static void Dao(int []number)
{

for (int x=0;x<number.length;x++ )
{
for (int y=0;y<number.length-x ;y++)
{
int a = number[y];
number[y]=number[y+1];
number[y+1]=a;
}
}

}
这个错哪了
作者: 杨兴庭    时间: 2013-5-3 18:08
好像没有导包吧。。。 Arrays.sort()使用之前要导入 java.util.Arrays这个包,我写了个简单的排序你看下代码:

import java.util.Arrays;

public class Text {

       
        public static void main(String[] args) {
               
      
               int [] a ={1,3,4,2,6,5}; //定义数组附初值
               int i;           //计数变量
               
               Arrays.sort(a);//顺序排列
               
              
               
               /*倒序打印*/
               for(i=a.length-1;i>=0;i--)
               {
                       System.out.println(a[i]);
               }
        }


打印结果如图:

jietu.jpg (140.56 KB, 下载次数: 0)

jietu.jpg

作者: 田爽    时间: 2013-5-3 18:09
孙宁 发表于 2013-5-3 17:50
你打印的时候写错了,
  System.out.print(arr[x]+' ');
应该是 System.out.print(arr[x]+" ");

:D谢谢:D:D:D
作者: 田爽    时间: 2013-5-3 18:18
谢谢各位了  
作者: 吴传淦    时间: 2013-5-3 18:21
本帖最后由 吴传淦 于 2013-5-3 18:25 编辑
田爽 发表于 2013-5-3 18:08
谢谢  再请教下  public static void Dao(int []number)
{

  public static void Dao(int []number){

                for (int x=0;x<number.length;x++ )
                {
                        for (int y=0;y<number.length-x ;y++){
                            if((y+1)<number.length-x){
                                   int a = number[y];
                                   number[y] = number[y+1];
                                   number[y+1] = a;
                             }
                        }
                        
    }




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