题目:定义一个长度为10的整数数组,可保存用户通过控制台输入的10个整数,并计算他们的平均值,最大值,最小值
为什么输出最大值和最小值都为0呢?

解决方案 »

  1.   

    放到for循环里面可以么。
      

  2.   

    因为你用的是增强for循环,循环里的z只是一个局部变量,不是数组中的变量,你给z赋值没有意义 for(int z : zh){
    System.out.println("请输入整数");
    z = scanner.nextInt();
    num += z;
    // 加上下面这两行才能给数组赋值
    zh[i] = z;
    i++;
    }
      

  3.   

    用的for循环只是将数组里面的值赋值给z,并没有给数组赋值,
      

  4.   

    不太懂你就先用标准for循环写写吧
      

  5.   

    z=sc.nextInt();  只是将输入的值赋给变量z,和数组没有关系,数组复制应该带下表,z[i]
    所以不能使用增强for循环,用标准for循环就ok了,或者在for循环外声明变量int index=0,在for循环内部z[index]=sc.nextInt(); index++;这样也可以
      

  6.   

    import java.util.*;
    public class b {
    public static void main(String[] args) {

    Scanner sc=new Scanner(System.in);
    int[]zh=new int[5];
    int num=0;
    for(int i:zh){
    System.out.println("请输入整数");
    zh[i]=sc.nextInt();
    num+=zh[i];
    }
    Arrays.sort(zh);
    double ave=num/5.0;
    System.out.println("平均"+ave);
    System.out.println("最小"+zh[0]);
    System.out.println("最大"+zh[4]); }}
      

  7.   

    hhh
    你没有给数组赋值啊你把数组for打印出来应该都是0
    楼上正解
      

  8.   

    1.简单却容易理解,代码如下:
    package cn.zy.csdn;
    import static net.zy.util.Print.*;import java.util.Arrays;
    import java.util.Scanner;public class Test3 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub Scanner s=new Scanner(System.in);
    int[] nums=new int[5];
    int sum=0;
    for(int i=0;i<nums.length;i++){
    print("请输入num");
    nums[i]=s.nextInt();
    sum+=nums[i];
    }
    Arrays.sort(nums);
    //print(Arrays.toString(nums));
    print("平均值:"+sum/nums.length);
    print("min:"+nums[0]);
    print("max:"+nums[nums.length-1]);
    }}
      

  9.   

    因为使用的是foreach,基本类型你需要使用的是正常的for循环
      

  10.   

    高级for循环,用的是一个变量来对数组进行遍历,而对变量进行赋值,当然没赋值到数组里啦