黑马程序员技术交流社区

标题: 方法调用出了些问题,请帮忙看看。 [打印本页]

作者: 房宝彬    时间: 2012-1-7 16:05
标题: 方法调用出了些问题,请帮忙看看。
本帖最后由 房宝彬 于 2012-1-8 10:35 编辑
  1. public class HeiMaa
  2. {
  3.    public static void main (String[] args)
  4.    {
  5.            int[] b = {4,6,8,99,2,44,5,11};
  6.           int s= daxiao(b);
  7.          System.out.println(s);
  8.          xuanze(b);
  9.        
  10.    }
  11.    public static int daxiao (int[] a)
  12.    {
  13.            int max = a[0];
  14.            for(int x=1;x<a.length;x++)
  15.            {
  16.                    if(a[x]<max)
  17.                    {
  18.                            max=a[x];
  19.                    }
  20.            }
  21.            return max;
  22.    }
  23.    public static void xuanze (int[] s)
  24.    {

  25.            for(int a=0;a<=s.length-1;a++)
  26.            {
  27.                    for(int y=a+1;y<=s.length;y++)
  28.                    {
  29.                            if(s[a]>s[y])
  30.                            {
  31.                                    int sum=s[a];
  32.                                    s[a]=s[y];
  33.                                    s[y]=sum;
  34.                            }
  35.                    }
  36.            }

  37.    }
  38. }
复制代码
请帮我看看哪里错了
作者: 张一凡    时间: 2012-1-7 16:47
  1. public class HeiMaa {
  2.    public static void main (String[] args){
  3.        int[] b = {4,6,8,99,2,44,5,11};
  4.            int s= daxiao(b);
  5.        System.out.println(s);
  6.        xuanze(b);
  7.            print(b);
  8.    }

  9.    public static int daxiao (int[] a){
  10.            int max = a[0];
  11.        for(int x=1;x<a.length;x++){
  12.            if(a[x]>max){
  13.                max=a[x];
  14.            }
  15.        }
  16.        return max;
  17.    }

  18.    public static void xuanze (int[] s){
  19.        for(int a=0;a < s.length;a++) {
  20.            for(int y=0;y < s.length;y++){
  21.                if(s[a]<s[y]){
  22.                   int sum=s[a];
  23.                   s[a]=s[y];
  24.                   s[y]=sum;
  25.                }
  26.            }
  27.        }
  28.         }
  29.         public static void print(int[] data){
  30.                 for(int x = 0;x<data.length;x++){
  31.                         System.out.print(data[x]+"、");
  32.                 }
  33.         }
  34. }
复制代码
看看和你的有什么不同!
作者: 代臣    时间: 2012-1-7 20:25
看你上面的代码:
第26行:for(int a=0;a<=s.length-1;a++),s.length不需要减1;
第28行:for(int y=a+1;y<=s.length;y++),y<s.length,不是<=.
改了就对了。
你写的应该是选择排序,选择排序算法思想:
示例:有一组数字12,4,35,6,57,98,利用选择排序算法排序。
步骤1.用第一个数字12依次和后面的数字进行比较,如果后面有数字比12小,则将12与该数字交换位置,直到比较运算进行到最后一个数字为止;
步骤2.重复步骤1。
作者: 张一凡    时间: 2012-1-11 17:13
代臣 发表于 2012-1-7 20:25
看你上面的代码:
第26行:for(int a=0;a

你试过?     




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