Java基础题目--中位数

这篇文章详细描述了一个Java程序,用于输入n个整数,计算其中位数并插入给定整数x,保持数组升序。涉及median和addArry方法以处理奇数和偶数数组长度的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

编写Java程序输入n个整数,以及一个整数x,计算这n个整数的中位数并输出。然后将x插入到数组的相应位置,使数组按升序排列。中位数定义:对元素按降序排列,若n是奇数,取(n+1)/2位置的值,否则,取n/2和(n/2+1)的平均值(舍去小数取整)。

输入

n和n个整数,整数x

输出

中位数,插入x后的数组元素

样例输入 Copy

5 1 2 3 4 5 4

样例输出 Copy

3 1 2 3 4 4 5

答案代码

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		int n = input.nextInt();
		int[] arry = new int[n];
		for (int i = 0; i < arry.length; i++) {
			arry[i] = input.nextInt();
		}
		
		int x = input.nextInt();
		
		Arrays.sort(arry);
		int med = median(arry);
		System.out.print(med);
		int[] arryb = addArry(arry, x);
		
		for (int i = 0; i < arryb.length; i++) {
			System.out.print(" " + arryb[i]);
		}
	}
	
	public static int median(int[] arry) {
		int med;
		if(arry.length%2 == 0) {
			med = (arry[arry.length/2] +  arry[arry.length/2-1])/2;
		}else {
			med = arry[arry.length/2];
		}
		return med;
	}
	
	public static int[] addArry(int[] arry, int n) {
		int[] arryb = new int[arry.length+1];
		int i;
		for (i = 0; i < arry.length; i++) {
			arryb[i] = arry[i];
		}
		arryb[i] = n;
		Arrays.sort(arryb);
		return arryb;
	}

}

答案代码分析

有一个名为Main的类,包含了以下几个方法:
1. main方法:程序的入口点,通过Scanner类获取用户输入的整数数组和一个整数,然后对输入的数组进行排序,并计算其中位数(如果数组长度为偶数,取中间两个数的平均值,如果为奇数,取中间数)。接着调用addArry方法将输入的整数加入到数组中,并对新数组进行排序,最后输出中位数和新数组。
2. median方法:接受一个整型数组作为参数,计算数组的中位数并返回。如果数组长度为偶数,则取中间两个数的平均值,如果为奇数,则取中间数。
3. addArry方法:接受一个整型数组和一个整数作为参数,在数组的末尾添加这个整数,并返回新的整型数组。添加完整数后,对新数组进行排序。
这些方法实现了对输入的整型数组进行排序、计算中位数,并实现了向数组中添加元素并排序的操作。最终输出了计算得到的中位数和添加完整数后的新数组。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值