0
点赞
收藏
分享

微信扫一扫

java输入4个整数求和平均值最接近的值以及下标

钟罗敏 2024-01-26 阅读 14

Java输入4个整数求和平均值最接近的值以及下标

在日常生活中,我们经常需要对一组数据进行处理和分析。有时候,我们需要找到一组整数中求和平均值最接近的值,以及该值所在的位置。在本文中,我们将使用Java编程语言来实现这一功能,并通过代码示例来详细说明。

问题分析

首先,我们需要明确问题的要求。给定4个整数,我们需要计算它们的和,并找到与平均值最接近的整数。同时,我们还需要确定该整数在原始数组中的位置。

为了解决这个问题,我们可以使用以下步骤:

  1. 输入4个整数。
  2. 计算这4个整数的和以及平均值。
  3. 遍历整个数组,找到与平均值最接近的整数,并记录其位置。
  4. 输出最接近的整数和其位置。

代码实现

下面是用Java编写的示例代码:

import java.util.Scanner;

public class ClosestNumber {
    public static void main(String[] args) {
        int[] numbers = new int[4];
        
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入4个整数:");
        
        for (int i = 0; i < 4; i++) {
            numbers[i] = scanner.nextInt();
        }
        
        int sum = 0;
        for (int number : numbers) {
            sum += number;
        }
        
        double average = (double) sum / numbers.length;
        
        int closestNumber = numbers[0];
        int closestIndex = 0;
        int minDiff = Math.abs(numbers[0] - (int) average);
        
        for (int i = 1; i < numbers.length; i++) {
            int diff = Math.abs(numbers[i] - (int) average);
            if (diff < minDiff) {
                minDiff = diff;
                closestNumber = numbers[i];
                closestIndex = i;
            }
        }
        
        System.out.println("最接近平均值的整数是:" + closestNumber);
        System.out.println("该整数在数组中的位置是:" + closestIndex);
    }
}

代码解释

让我们逐行解释一下上面的代码:

  1. int[] numbers = new int[4]; - 创建一个长度为4的整型数组来存储输入的4个整数。
  2. Scanner scanner = new Scanner(System.in); - 创建一个Scanner对象,用于读取用户输入。
  3. for (int i = 0; i < 4; i++) { numbers[i] = scanner.nextInt(); } - 循环读取用户输入的4个整数,并将它们存储在数组中。
  4. int sum = 0; for (int number : numbers) { sum += number; } - 计算数组中所有整数的和。
  5. double average = (double) sum / numbers.length; - 计算数组中所有整数的平均值。
  6. int closestNumber = numbers[0]; int closestIndex = 0; int minDiff = Math.abs(numbers[0] - (int) average); - 初始化变量closestNumber为数组的第一个元素,closestIndex为0,minDiff为第一个元素与平均值的差的绝对值。
  7. for (int i = 1; i < numbers.length; i++) { int diff = Math.abs(numbers[i] - (int) average); if (diff < minDiff) { minDiff = diff; closestNumber = numbers[i]; closestIndex = i; } } - 遍历整个数组,计算每个元素与平均值的差的绝对值,如果差比minDiff小,则更新minDiffclosestNumberclosestIndex
  8. System.out.println("最接近平均值的整数是:" + closestNumber); System.out.println("该整数在数组中的位置是:" + closestIndex); - 输出最接近平均值的整数和它在数组中的位置。

状态图

下面是表示代码执行过程的状态图:

stateDiagram
    [*] --> 输入整数
    输入整数 --> 计算和平均值
    计算和平均值 --> 查找最接近的整数
    查找最接近的整数 --> 输出结果
    输出结果 --> [*]

序列图

下面是表示代码

举报

相关推荐

0 条评论