消息关闭
    暂无新消息!

新手求问一个关于for循环的问题

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

16个回答

︿ 1
hhh
你没有给数组赋值啊。。。你把数组for打印出来应该都是0
楼上正解
︿ 0
z=sc.nextInt();  只是将输入的值赋给变量z,和数组没有关系,数组复制应该带下表,z[i]
所以不能使用增强for循环,用标准for循环就ok了,或者在for循环外声明变量int index=0,在for循环内部z[index]=sc.nextInt(); index++;这样也可以
︿ 0
因为你用的是增强for循环,循环里的z只是一个局部变量,不是数组中的变量,你给z赋值没有意义

for(int z : zh){
System.out.println("请输入整数");
z = scanner.nextInt();
num += z;
// 加上下面这两行才能给数组赋值
zh[i] = z;
i++;
}
︿ 0
高级for循环,用的是一个变量来对数组进行遍历,而对变量进行赋值,当然没赋值到数组里啦
︿ 0
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]);
}

}
︿ 0
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]);

}

}