package com.imook;
/*
*1、 定义一个整型数组,并赋初值 61, 23, 4, 74, 13, 148, 20
2、 定义变量分别保存最大值、最小值、累加值和平均值,并假设数组中的第一个元素既为最大值又为最小值
3、 使用 for 循环遍历数组中的元素,分别与假定的最大值和最小值比较。如果比假定的最大值要大,则替换当前的最大值;如果比假定的最小值要小,则替换当前的最小值
4、 循环执行过程中对数组中的元素进行累加求和
5、 循环结束根据累加值计算平均值,并打印输出相关内容
*/
public class Demo02 {
public static void main(String[] args) {
int[] nums={61,23,4,74,13,148,20};//定义数组
int max=nums[0];//假设第一位为最大值
int min=nums[0];//假设第一位为最小值
double sum=0;//设定sum为累加求和
double avg=0;//设定avg为平均值
for(int i=0;i<=nums.length;i++){
if(nums[i]>max){
max=nums[i];
}else{
if(nums[i]<min){
min=nums[i];
}
}
sum=sum+nums[i];
}
avg=sum/nums.length;
System.out.println("数组中的最大值:"+max);
System.out.println("数组中的最小值:"+min);
System.out.println("数组中的平均值:"+avg);
System.out.println("数组求和"+sum);
}
}
for循环内“<=”,数组越界
把else 去掉,使用两个if与else没有关系
你这个就不对
为什么 if 语句后你用了一个else 语句
数组下标越界了,数组从0开始,取不到nums.length
for(int i=0;i<=nums.length;i++){
这一行改为
for(int i=0;i<nums.length;i++){
nums.length();调用方法要括号
public class Demo02 {
public static void main(String[] args) {
int[] nums={61,23,4,74,13,148,20};//定义数组
int max=nums[0];//假设第一位为最大值
int min=nums[0];//假设第一位为最小值
double sum=0;//设定sum为累加求和
double avg=0;//设定avg为平均值
for(int i=0;i<nums.length;i++){
if(nums[i]>max){
max=nums[i];
}else if(nums[i]<min){
min=nums[i];
}
sum=sum+nums[i];
}
avg=sum/nums.length;
System.out.println("数组中的最大值:"+max);
System.out.println("数组中的最小值:"+min);
System.out.println("数组中的平均值:"+avg);
System.out.println("数组求和"+sum);
}
}