12java、编写程序,利用随机数生成一个含有10个元素的数组,随机数范围为[10,50),从大到小排序输出该数组。
时间: 2024-03-26 16:35:27 浏览: 69
以下是 Java 代码实现:
```java
import java.util.Arrays;
import java.util.Random;
public class Main {
public static void main(String[] args) {
int[] arr = new int[10];
Random rand = new Random();
for (int i = 0; i < 10; i++) {
arr[i] = rand.nextInt(40) + 10; // 生成 [10,50) 范围内的随机数
}
Arrays.sort(arr); // 对数组进行排序
for (int i = arr.length - 1; i >= 0; i--) {
System.out.print(arr[i] + " "); // 从大到小输出数组元素
}
}
}
```
运行结果如下:
```
49 46 44 41 38 30 29 28 26 13
```
相关问题
用Java编写程序使用字节输入/输出流实现数据的保存和读取要求功能如下:随机数生成1~100之间的整型数据保存到数组(数组大小为10)中
在Java中,可以使用`java.io`包下的`FileOutputStream`和`FileInputStream`以及`DataOutputStream`和`DataInputStream`来实现文件的数据保存和读取。以下是实现这个需求的基本步骤:
1. **生成并保存数据**:
首先,你需要创建一个`Random`对象用于生成1~100的随机整数,并将这10个数字存入数组。
```java
import java.io.*;
import java.util.Random;
public class Main {
public static void main(String[] args) {
int[] data = new int[10];
Random random = new Random();
// 生成并填充数组
for (int i = 0; i < data.length; i++) {
data[i] = random.nextInt(100) + 1;
}
// 创建文件路径
String filePath = "random_numbers.txt";
try (FileOutputStream fos = new FileOutputStream(filePath);
DataOutputStream dos = new DataOutputStream(fos)) {
// 写入数组数据
for (int num : data) {
dos.writeInt(num);
}
} catch (IOException e) {
System.err.println("Error saving data: " + e.getMessage());
}
}
}
```
2. **从文件读取数据**:
然后,你可以通过`FileInputStream`和`DataInputStream`从文件读取刚才保存的数据并重构数组。
```java
import java.io.*;
public class ReadData {
public static void main(String[] args) {
String filePath = "random_numbers.txt";
try (FileInputStream fis = new FileInputStream(filePath);
DataInputStream dis = new DataInputStream(fis)) {
int[] newData = new int[10];
// 读取并填充新数组
for (int i = 0; i < data.length; i++) {
newData[i] = dis.readInt();
}
// 打印读取的数据
for (int num : newData) {
System.out.print(num + " ");
}
} catch (IOException e) {
System.err.println("Error reading data: " + e.getMessage());
}
}
}
```
在eclipse中编写Java程序,设计MyArray3类来实现以下要求:找出一个3×4矩阵二维数组中的最大最小值,二维数组的元素的值由系统随机数生成函数rand()产生,取值范围为两位数即[10,100)之间。输出最大最小值的行列位置序号。
下面是MyArray3类的代码实现:
```java
import java.util.Random;
public class MyArray3 {
private int[][] arr;
public MyArray3() {
arr = new int[3][4];
Random rand = new Random();
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
arr[i][j] = rand.nextInt(90) + 10;
}
}
}
public void print() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
public void findMaxMin() {
int max = arr[0][0], min = arr[0][0];
int maxRow = 0, maxCol = 0, minRow = 0, minCol = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
maxRow = i;
maxCol = j;
}
if (arr[i][j] < min) {
min = arr[i][j];
minRow = i;
minCol = j;
}
}
}
System.out.println("最大值:" + max + ",行:" + maxRow + ",列:" + maxCol);
System.out.println("最小值:" + min + ",行:" + minRow + ",列:" + minCol);
}
public static void main(String[] args) {
MyArray3 arr = new MyArray3();
arr.print();
arr.findMaxMin();
}
}
```
在主函数中,首先创建一个MyArray3对象arr,然后调用print()方法输出随机生成的二维数组。接着调用findMaxMin()方法,该方法使用两个变量max和min保存当前找到的最大值和最小值,使用四个变量maxRow、maxCol、minRow和minCol分别保存最大值和最小值所在的行和列。使用两层循环遍历二维数组,对每个元素进行比较,如果当前元素比max大,则更新max、maxRow和maxCol;如果当前元素比min小,则更新min、minRow和minCol。最后输出最大值和最小值以及它们所在的行和列。
阅读全文