Java 求一个整型数组元素中最接近其平均值的整数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 求一个整型数组元素中最接近其平均值的整数相关的知识,希望对你有一定的参考价值。

int[] a = 13,46,41,11,20,3,6,41,89,65,24,11;  //数组
double sum = 0;  //所有元素和
double average = 0;  //平均值
double phase = 0;
int b = 0;
for (int i = 0; i < a.length; i++) 
    sum += a[i];

average = sum / a.length;
System.out.println("平均值" + average);
phase = Math.abs(average - a[0]);
for (int i = 0; i < a.length; i++) 
    if (phase > Math.abs(average - a[i]))
        phase = Math.abs(average - a[i]);  //差值的绝对值
        b = a[i];
    

System.out.println("最接近其平均值的整数" + b);

参考技术A 算出平均值,加入数组中进行排序,再算平均值与前后的值那个相差最小,噢啦,还可以先排好序,在拿平均值去插,判断他与前后数组的差, 最小的那个就是了。。。追问

大神,可不可以写出来。我这明天要考试。

参考技术B 我提供一个思路,你先求出avg() ,然后做两个循环 一个以平均数为基础++ 一个-- 每一个都往数组里面遍历 直到遍历到为止。然后算++ -- 两个之间的距离到底哪个近

第六周上机

1.编写一个简单程序,要求数组长度为5,静态赋值10,20,30,40,50,在控制台输出该数组的值。
2.编写一个简单程序,要求数组长度为5,动态赋值10,20,30,40,50,在控制台输出该数组的值。
3.编写一个简单程序,定义整型数组,里面的元素是{23,45,22,33,56},求数组元素的和、平均值
4.在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标。

5. 将一个数组中的元素逆序存放(知识点:数组遍历、数组元素访问)


1 package com.itheima08;
public class HelloBudget {
public static void main(String[] args ){
    int[]arr={10,20,30,40,50};
    for(int i=0;i<5;i++){
        System.out.println(arr[i]);
    }
    
}
}
2.package com.itheima08;
import java.util.*;
public class HelloBudget {
public static void main(String args[]) {
Scanner input=new Scanner(System.in);
    int[]arr=new int[5];
    for(int i=0;i<arr.length;i++){
        System.out.println("请输入数字");
        arr[i]=input.nextInt();
    }
    System.out.println("赋值结束");
    for(int i:arr){
        System.out.println(i);
    }
    }
}
3.package com.itheima08;
public class HelloBudget {
public static void main(String args[]) {
int[]arr=new int[]{23,45,22,33,56};
int avg=0;
int sum=0;
for(int i=0;i<arr.length;i++){
    sum=sum+arr[i];
}
avg=sum/arr.length;
System.out.println(avg);
System.out.println(sum);
    }
}
        
    
4 package com.itheima08;
public class HelloBudget {
public static void main(String[] args ){
    int[]arr=new int[8];
    arr[0]=18;
    arr[1]=25;
    arr[2]=7;
    arr[3]=36;
    arr[4]=13;
    arr[5]=2;
    arr[6]=89;
    arr[7]=63;
    int max=arr[0];
    int n=0;
    for(int i=1;i<arr.length;i++){
        if(arr[i]>max){
            max=arr[i];
            n=i;
        }
        
            
        }
    System.out.println("最大值是:"+max+"下标为:"+n);
    }
}
5.package com.itheima08;
import java.util.*;
public class HelloBudget {
public static void main(String args[]) {
Scanner in=new Scanner(System.in);
int N=in.nextInt();
int arr[]=new int[N];
for(int  i=0;i<arr.length;i++){
    arr[i]=in.nextInt();
}
int temp;
for(int i=0;i<arr.length/2;i++){
    temp=arr[i];
    arr[i]=arr[arr.length-i-1];
    arr[arr.length-i-1]=temp;
}
for(int i=0;i<arr.length;i++){
    System.out.println(arr[i]+"");
}
    
}

 

技术图片技术图片技术图片技术图片技术图片

以上是关于Java 求一个整型数组元素中最接近其平均值的整数的主要内容,如果未能解决你的问题,请参考以下文章

用matlab如何求出一个数组中最接近某个数的两个数的下标??

第六周上机

求java程序:输入n个正整数,分成两组求和,求两列数字组合使这两组的和最接近平均数

在php中给定一个数,求数组中最接近的一个值。

如何将一个一维数组中的所有数都赋值为-1?不用循环。

C语言如何输入一个数组