A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李震 初级黑马   /  2012-8-7 10:05  /  1595 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李震 于 2012-8-7 10:42 编辑

我自己做了一遍工具类的定义,可总是不能通过,从冒泡排序就提示开始出现错误,说是非法表达式的开始。求指教!
class  ArrayTool
{
private ArrayTool(){}
public static int getMax(int[] arr)//求最大值
{
  int max=0;
  for(int x=1;x<arr.length;x++)
  {
   if(arr[max]<arr[x])
    max=x;
  }
   return arr[max];
}

public static int getMin(int[] arr)//求最小值
{
  int min=0;
  for(int x=1;x<arr.length;x++)
  {
   if(arr[min]>arr[x])
    min=x;
  }
   return arr[min];
}
public void selectSort(int[] arr)//选择排序
{
  for(int x=0;x<arr.length-1;x++)
  {
   for(int y=x+1;y<arr.length;y++)
   {
    swap(arr,x,y);
   }
}
public static void bubbleSort(int[] arr)//冒泡排序
{
  for(int x=0;x<arr.length-1;x++)
  {
   for(int y=o;y<arr.length-x;y++)
   {
    if(arr[y]>arr[y+1])
    {
     swap(arr,y,y+1);
    }
   }
  }
}
private static void swap(int[] arr,int a,int b)//元素位置交换
{
  int temp=arr[a];
  arr[a]=arr;
  arr=temp;
}
public static void printArray(int[] arr)//打印数组
{
  System.out.print("{");
  for(int x=0;x<length;x++)
  {
   if (x!=arr.length-1)   
    System.out.print(arr[x]+",");
   else
    System.out.println(arr[x]+"}");
  }
}
}

4 个回复

倒序浏览
public static void bubbleSort(int[] arr)//冒泡排序
{
  for(int x=0;x<arr.length-1;x++)
  {
   for(int y=o;y<arr.length-x;y++)
   {
y的值写错啦  是0  不是o
回复 使用道具 举报
刘向阳 发表于 2012-8-7 10:10
public static void bubbleSort(int[] arr)//冒泡排序
{
  for(int x=0;x

哦,对啊,可还是有问题,不能通过
回复 使用道具 举报
看下面代码中红色的部分
class  ArrayTool
{
        private ArrayTool(){}
        public static int getMax(int[] arr)//求最大值
        {
          int max=0;
          for(int x=1;x<arr.length;x++)
          {
           if(arr[max]<arr[x])
                max=x;
          }
           return arr[max];
        }

        public static int getMin(int[] arr)//求最小值
        {
          int min=0;
          for(int x=1;x<arr.length;x++)
          {
           if(arr[min]>arr[x])
                min=x;
          }
           return arr[min];
        }
        public void selectSort(int[] arr)//选择排序
        {
          for(int x=0;x<arr.length-1;x++)
          {
           for(int y=x+1;y<arr.length;y++)
           {
                swap(arr,x,y);
           }
          //在这里少了一个大括号 }        }
        public static void bubbleSort(int[] arr)//冒泡排序
        {
          for(int x=0;x<arr.length-1;x++)
          {
           for(int y=o;y<arr.length-x;y++) // int y=o  你写的不是0,而是英文字母o,所以报错
           {
                if(arr[y]>arr[y+1])
                {
                 swap(arr,y,y+1);
                }
           }
          }
        }
        private static void swap(int[] arr,int a,int b)//元素位置交换
        {
          int temp=arr[a];
          arr[a]=arr;
          arr=temp;
        }
        public static void printArray(int[] arr)//打印数组
        {
          System.out.print("{");
          for(int x=0;x<arr.length;x++) //你写的是x<length 应该改成arr.length  
          {
           if (x!=arr.length-1)   
                System.out.print(arr[x]+",");
           else
                System.out.println(arr[x]+"}");
          }
        }
}
平时的一些细节还是很重要的,我之前因为在一个代码中多加了一个不起眼的分号,一直不知道错在哪里,所以一定要注意细节。
回复 使用道具 举报
潘星 发表于 2012-8-7 10:30
看下面代码中红色的部分
class  ArrayTool
{

:handshake 谢谢啊,我这粗心的毛病老是犯,改过来之后顺利通过!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马