自定义数组长度,自定义数组元素。求数组元素和,数组元素平均数,最大元素,最小元素,大于平均数的元素个数,小于平均数的元素个数
现在可以获得正确的数组元素和,数组元素平均数,最大元素。另外三个获取值不正确。拜托帮我看看问题出在哪里。
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);}
}
现在可以获得正确的数组元素和,数组元素平均数,最大元素。另外三个获取值不正确。拜托帮我看看问题出在哪里。
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);}
}
if(basicArray[i]>basicArray[0]){
max=basicArray[i];
}
if(basicArray[i]<basicArray[0]){
min=basicArray[i];
}
这里都出错了
至少两个循环啊
第一次循环算出sum max min
退出循环后
算出 avg
第二次循环算出bigger和smaller
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++;}
}
}