自定义数组长度,自定义数组元素。求数组元素和,数组元素平均数,最大元素,最小元素,大于平均数的元素个数,小于平均数的元素个数
现在可以获得正确的数组元素和,数组元素平均数,最大元素。另外三个获取值不正确。拜托帮我看看问题出在哪里。
import java.util.Scanner;
public class One { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
int x = in.nextInt();
double sum = 0;
double average = 0;
double[] basicArray = new double[x];
double max = basicArray[0];
double min = basicArray[0];
int smaller=0,greater=0;
for(int i=0;i<basicArray.length;i++){
basicArray[i]=in.nextDouble();
sum+=basicArray[i];
average = sum/basicArray.length;
if(basicArray[i]>basicArray[0]){
max=basicArray[i];
}
if(basicArray[i]<basicArray[0]){
min=basicArray[i];
}
if(basicArray[i]>average){
greater++;
}
if(basicArray[i]<average){
smaller++;}
}System.out.println(sum);
System.out.println(average);
System.out.println(max);
System.out.println(min);
System.out.println(smaller);
System.out.println(greater);}
}

解决方案 »

  1.   

    average = sum/basicArray.length;
    if(basicArray[i]>basicArray[0]){
    max=basicArray[i];
    }
    if(basicArray[i]<basicArray[0]){
    min=basicArray[i];
    }
    这里都出错了
      

  2.   

    逻辑有问题啊,不是应该先算出sum 在算avg,最后遍历统计bigger和smaller啊
    至少两个循环啊
    第一次循环算出sum max min
    退出循环后
    算出 avg 
    第二次循环算出bigger和smaller
      

  3.   

    最大值和最小值算法也有问题
    basicArray[i]和max,min比较,而不是basicArray的第一个
    for(int i=0;i<basicArray.length;i++){
    basicArray[i]=in.nextDouble();
    sum+=basicArray[i];if(basicArray[i]>max){
    max=basicArray[i];
    }
    if(basicArray[i]<min){
    min=basicArray[i];
    }}
    average = sum/basicArray.length;
    for(int i=0;i<basicArray.length;i++){
    if(basicArray[i]>average){
    greater++;
    }
    if(basicArray[i]<average){
    smaller++;}
    }
    }