求java程序 输入一个数组 输出这个数组里比平均值大的元素个数 谢谢~~~

用jave编写一个程序要求输出一个整数数组中的最大和最小的元素,平均值,所有元素的和~

下面的程序不处理空数组...

import java.util.Arrays;
public class Test {

public static void main(String[] args) {
int[] array = { 1, 2, 3, 4, 5, };

int[] temp = Arrays.copyOf(array, array.length);
Arrays.sort(temp);

System.out.println("min: " + temp[0]);
System.out.println("max: " + temp[temp.length - 1]);
System.out.println("sum: " + sum(temp));
System.out.println("avg: " + sum(temp) / temp.length);
}

private static int sum(int[] array) {
int sum = 0;
for (int i = 0; i < array.length; ++i)
sum += array[i];
return sum;
}


}

给个方法,可能比较笨
首先数组进行快排,然后进行相应计算

public class Test{
public static void main(String args[]){
double avg=0; //定义平均值,赋初值为0
int sum=0; //定义数组的和,赋初值为0
int arg []={1,2,3,4,5,6};//随便定义一个数组
for(int i=0; i<arg.length; i++){
sum+=arg[i]; //求数组的和
}
avg=sum/arg.length; //求数组平均值
System.out.println("数组的个数:"+arg.length);
System.out.println("数组的总和:"+sum);
System.out.println("数组平均值:"+avg);
System.out.print("大于平均值的有:");

for(int i=0; i<arg.length; i++){
if(arg[i]>avg){ //将数组中的每个数和数组平均值比大小
System.out.print(arg[i]+" ");
}
}
}
}

------------------------------------------------------------------------------------------------------------------
数组的个数:6
数组的总和:21
数组平均值:3.0
大于平均值的有:4 5 6

以int类型数组为例,其他类型的都类似.

用户输入的时候用逗号隔开数字就可以了

import java.util.Scanner;

public class Baidu {

public static void main(String[] args) {

int[] ary = getArrayFromInput();

double average = calcArrayAverage(ary);

System.out.println("Average is: " + average);

int count = 0;

for (int item : ary) {
if (item > average) {
count++;
}
}

System.out.println("Total " + count
+ " numbers greater than average of given array");

}

private static int[] getArrayFromInput() {

System.out.println("Please input some digits, separate with ',': ");

Scanner scanner = new Scanner(System.in);

String[] digits = scanner.nextLine().split(",");

int[] array = new int[digits.length];

for(int i = 0; i < digits.length; i++){
array[i] = Integer.parseInt(digits[i].trim());
}

return array;
}

private static double calcArrayAverage(int[] ary) {
double arySum = 0D;

for (int item : ary) {
arySum += item;
}

return arySum / ary.length;
}
}

-----------
Please input some digits, separate with ',':
12, 35, 28, 127, 96, 35
Average is: 55.5
Total 2 numbers greater than average of given array

相关兴趣推荐

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网