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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 选择黑马 黑马帝   /  2012-6-17 14:33  /  1755 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

麻烦大家帮我看下以下这段代码在dos命令编译的时候所报的错误是这样的:无法将YingYong1中的paixu<int[],int,int>应用于<int[]> p.paixu(arr);这表示什么意思,谢谢!

class YingYong1{
public void paixuqian(int[] arr)
        {
                for(int x = 0;x<arr.length-1;x++)
                {
                        for(int y=x+1;y<arr.length;y++)
                        {
                                if(arr[x]>arr[y])
                                {
                                        paixu(arr,x,y);
                                }
                        }
                }
        }
        public void paixuhou(int[] arr)
        {
                for(int y=0;y<arr.length-1;y++)
                {
                        if(arr[y]>arr[y+1])
                        {
                                paixu(arr,y,y+1);
                        }
                }
        }
        public void paixu(int[] arr,int a,int b)
        {
                int tmp = arr[a];
                arr[a]=arr[b];
                arr[b]= tmp;
        }
        public static void getDaying(int[] arr)
        {
                System.out.print("[");
                for(int x = 0;x<arr.length;x++)
                {
                        if(x!=arr.length-1)
                        {
                                System.out.print(arr[x]+", ");
                        }else
                        System.out.println("]");
                }
        }
        }
}

9 个回复

倒序浏览
class YingYong2
{
        public static void main(String[] args)
        {
                int[] arr = {2,3,4,5,6,7,9};

                YingYong1 p = new YingYong1();

                p.paixuqian(arr);
                p.paixu(arr);
                p.paixuhou(arr);
        }
}
回复 使用道具 举报
你的问题在这里  p.paixu(arr);  
你的方法public void paixu(int[] arr,int a,int b)是3个参数 而实际上你只传了一个数组
回复 使用道具 举报
因为p.paixu(arr);是一个参数啊   paixu(int[] arr,int a,int b)需要三个参数
回复 使用道具 举报
运行了没有问题啊。。。
回复 使用道具 举报
哦,是的,我都晕了,谢谢哥们啊。
回复 使用道具 举报
张頔 中级黑马 2012-6-17 14:49:35
7#
第一
你的class YingYong1  最后多了了一个“}”
第二
class YingYong2
{
        public static void main(String[] args)
        {
                int[] arr = {2,3,4,5,6,7,9};

                YingYong1 p = new YingYong1();

                p.paixuqian(arr);
                p.paixu(arr);//你的YingYong中paixu()方法还有两个参数 public void paixu(int[] arr,int a,int b)

                p.paixuhou(arr);
        }
}
回复 使用道具 举报
本帖最后由 吴小东 于 2012-6-17 15:03 编辑

感觉你的思路有点乱啊,
p.paixuqian(arr); ---->那么这里就方法就应该是打印排序前的数组元素
p.paixu(); ---->这里调用方法实现在数组的排序
p.paixuhou(arr);---->这里应该是打印排序后的数组元素
然而你的paixuqian() 方法也在对数组进行排序
下面是我写的代码,为什么编辑没格式。。。
回复 使用道具 举报
  1. class  ArrayTool //implements ImArrayTool
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] arr = new int[]{2,4,1,3,5};
  6.                 showArray(arr);
  7.                 sortArray(arr);
  8.                 showArray(arr);
  9.         }

  10. //对整型数组中的元素进行显示
  11.         public static void showArray(int [] arr)
  12.         {
  13.                 System.out.print("数组中个元素为:[ ");
  14.                 for (int i=0 ; i<arr.length ; i++ )
  15.                 {
  16.                         if (i==arr.length-1)
  17.                         {
  18.                                 System.out.print(arr[i]+"]");
  19.                         }else
  20.                         {
  21.                                 System.out.print(arr[i]+",");
  22.                         }                       
  23.                 }
  24.         }
  25.         //对数组进行排序 冒泡排序 或者 选择排序
  26.         public static void sortArray(int[] arr)
  27.         {
  28.                 int temp;
  29.                 for (int i=0 ; i<arr.length-1 ; i++ )
  30.                 {
  31.                         for (int j=0 ; j<arr.length-i-1 ; j++ )
  32.                         {
  33.                                 if (arr[j]<arr[j+1])
  34.                                 {
  35.                                         temp = arr[j];
  36.                                         arr[j] = arr[j+1];
  37.                                         arr[j+1] = temp;
  38.                                 }
  39.                         }
  40.                 }       
  41.         }
  42. }
复制代码
回复 使用道具 举报
谢谢哥们我的问题解决了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马