求java程序 输入一个数组 输出这个数组里比平均值大的元素个数 谢谢~~~
用jave编写一个程序要求输出一个整数数组中的最大和最小的元素,平均值,所有元素的和~
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
下面的程序不处理空数组...
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 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