黑马程序员技术交流社区

标题: 为什么都是得到数组0角标的值呀, 谁帮我看看出了什么问题。 [打印本页]

作者: _童金辉    时间: 2014-8-11 01:41
标题: 为什么都是得到数组0角标的值呀, 谁帮我看看出了什么问题。
package com.itheima;

import java.util.Scanner;

/**
*
* 第五题:编写程序接收键盘输入的5个数,装入一个数组,并找出其最大数和最小数。
*
* @author Administrator
*
*/

public class Test5 {
        public static void main(String[] args)
    {
            int[] arr=new int[5];//创建一个元素个数为5的整形数组
            Scanner in=new Scanner(System.in);//输入流
            for(int i=0;i<arr.length;i++)//输入数组元素
            {
//                            System.out.println("输入第"+(i+1 )+"个数:");
                    arr[i]=in.nextInt();
            }
   
            int max=Max(arr);//调用求最大值的函数
            int min=Min(arr);//调用求最小值的函数
            System.out.println("最大值="+max+", 最小值="+min);
            
    }
    static int Min(int[] arr)//求最小值的函数
    {
            int min=0;
            int small=arr[min];            
            for(int i=0;i<arr.length;i++)  
            {
                    if(arr[i]<small)              
                    {
                            min=i;               
                            small= arr[min];
                    }
            }
            return small;//返回最小值
    }
    static int Max(int[] arr)//求最大的得函数
    {
            int max=0;
            int big=arr[max];               
            for(int j=0;j<arr.length;j++)
            {
                       if(arr[j]>arr[max])                  
                    {
                            max=j;                  
                            max= arr[max];
                    }
            }
            return big;//返回最大值
    }

}

作者: dispensable    时间: 2014-8-11 02:21
:L顶楼上的,max= arr[max];错了,应该是big=arr[max]
而且你这代码min和max函数定义得有两点问题:
1  方法名首字母要小写
2 你定义的big 和max 两者有一个是多余的,我修改一下max方法,仅供参考,修改代码如下:
  1. static int max(int[] arr)//求最大的得函数
  2.             {
  3.                     int max=arr[0];
  4.                                   
  5.                     for(int j=1;j<arr.length;j++)
  6.                     {
  7.                                if(arr[j]>max)                  
  8.                             {
  9.                                     max=arr[j];                  
  10.                                   
  11.                             }
  12.                     }
  13.                     return max;//返回最大值
复制代码


作者: 范靖明    时间: 2014-8-11 08:59
在arr[j]>arr[max];这错了,应该是arr[j]>arr[big];
作者: _童金辉    时间: 2014-8-11 09:57
哦,    我昨天也昨天有点困,,   谢谢了




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