新手求问一个关于for循环的问题 题目:定义一个长度为10的整数数组,可保存用户通过控制台输入的10个整数,并计算他们的平均值,最大值,最小值为什么输出最大值和最小值都为0呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 放到for循环里面可以么。 因为你用的是增强for循环,循环里的z只是一个局部变量,不是数组中的变量,你给z赋值没有意义 for(int z : zh){ System.out.println("请输入整数"); z = scanner.nextInt(); num += z; // 加上下面这两行才能给数组赋值 zh[i] = z; i++; } 用的for循环只是将数组里面的值赋值给z,并没有给数组赋值, 不太懂你就先用标准for循环写写吧 z=sc.nextInt(); 只是将输入的值赋给变量z,和数组没有关系,数组复制应该带下表,z[i]所以不能使用增强for循环,用标准for循环就ok了,或者在for循环外声明变量int index=0,在for循环内部z[index]=sc.nextInt(); index++;这样也可以 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]); }} hhh你没有给数组赋值啊你把数组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]); }} 因为使用的是foreach,基本类型你需要使用的是正常的for循环 高级for循环,用的是一个变量来对数组进行遍历,而对变量进行赋值,当然没赋值到数组里啦 java 二进制int循环左移 C原型,如何在JAVA中声明,引用? 国外哪个sun认证的题库好? BufferedWriter基础问题 无法解释程序结果~ poi操纵excel如何把浮点数已百分比的格式显示出来 LinkedHashMap 问题,关于同步,多线程 编译显示没有对OperatorsAndExpressions进行声名 焦头烂额!!!在XP下怎么设置CLASSPATH. 如何在储存过程中实现分页? 有个关于字符串替换的问题需要请教一下 下载文件能下载但是ioException 报 closed
System.out.println("请输入整数");
z = scanner.nextInt();
num += z;
// 加上下面这两行才能给数组赋值
zh[i] = z;
i++;
}
所以不能使用增强for循环,用标准for循环就ok了,或者在for循环外声明变量int index=0,在for循环内部z[index]=sc.nextInt(); index++;这样也可以
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]); }}
你没有给数组赋值啊你把数组for打印出来应该都是0
楼上正解
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]);
}}