这个数组的长度未知,最大为20,要求以换行符号为数组输入的结束标志
时间: 2024-09-15 11:12:20 浏览: 39
对于这种未知长度且最大不超过20的数组,你可以采用动态内存分配的方式,在读入每个元素后立即释放空间,直到遇到换行符为止。以下是一个简单的Java示例:
```java
import java.util.Scanner;
public class DynamicArrayMedian {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] array = new int[20]; // 创建最多容纳20个元素的数组
int index = 0; // 当前索引,初始化为0
System.out.print("请输入数组元素,以换行符结束: ");
while (scanner.hasNextInt()) { // 读取用户输入直到遇到换行符
array[index++] = scanner.nextInt(); // 存储下一个整数值
}
scanner.nextLine(); // 吃掉换行符
sortAndFindMedian(array, index); // 计算并打印中位数
}
private static void sortAndFindMedian(int[] arr, int size) {
if (size % 2 == 0) { // 如果数组长度偶数
int medianIndex1 = size / 2 - 1;
int medianIndex2 = size / 2;
System.out.println("中位数是: (" + arr[medianIndex1] + ", " + arr[medianIndex2] + ")");
} else { // 数组长度奇数
int medianIndex = size / 2;
System.out.println("中位数是: " + arr[medianIndex]);
}
}
}
```
在这个示例中,我们使用`Scanner`读取用户的输入,并动态存储在数组中。当遇到换行符时停止读取。接着对数组进行排序,然后计算并打印中位数。
阅读全文