黑马程序员技术交流社区

标题: 求数组最大值,怎么编译通过了却运行不了? [打印本页]

作者: 刘凯旋    时间: 2014-3-2 14:04
标题: 求数组最大值,怎么编译通过了却运行不了?
本帖最后由 刘凯旋 于 2014-3-4 19:03 编辑
  1. class ZuiDa
  2. {
  3.         public static int qiuzuida(int[] arr)
  4.         {
  5.                 int zuida=arr[0];
  6.                 for (int x=1;x<arr.length;x++)
  7.                 {
  8.                         if(arr[x]>zuida)
  9.                                 zuida=arr[x];
  10.                 }
  11.                 return arr[zuida];
  12.         }
  13.         public static void main(String[] args)
  14.         {
  15.                 int[] arr={5,8,9,465,46548,74,65,4,7};
  16.                 int zuida=qiuzuida(arr);
  17.                 System.out.println("zuida="+zuida);
  18.         }
  19. }
复制代码



作者: 无道    时间: 2014-3-2 14:21
return arr[zuida];  这句话有问题,前边你已经将zaida这个变量定义中arr中的一个元素,你到最后却要返回zaida在数组中所对的元素,。
作者: 我叫MT    时间: 2014-3-2 14:21
第十一行错误,第九行arr[x]已经赋值给了zuida,而你写的arr[zuida]完全不存在这个角标,zuida已经代表了arr数组里的一个元素,所以返回zuida即可,第十一行代码改为 return zuida;
作者: 无此姓名    时间: 2014-3-2 17:16
int zuida=arr[0]; zuida不是角标啊,第11行为什么还要把最大放在[]里边,直接teturn zuida;就可以了
作者: herim    时间: 2014-3-3 13:23
11行改为 return zuida;根据你前面定义,最大值赋值到zuida变量




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