JAVA随机产生1-100的随机数,保存到a组,数组中最大值存放到a[0]位置

我现在会随机产生1-100的随机数,怎么保存到a组还有最大值呢
2024年12月03日 07:29
有2个网友回答
网友(1):

import java.util.Scanner;

public class Test {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub

}

// 循环输入10个数
public int[] input() {
int[] nums = new int[10];// 定义一个大小为10的的整型数组
Scanner in = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
int input = in.nextInt();
nums[i] = input;
}

return nums;// 返回输入后 的数组
}

// 对数组进行从小到大排序
public int[] sort(int[] nums) {
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}

}

return nums;// 返回排序后 的数组
}

// 计算平均值
public double calcAverage(int[] nums) {
int sum = 0;// 总和
for (int i = 0; i < nums.length; i++) {
sum = sum + nums[i];
}

return (double) sum / 10;// 返回平均值
}

// 计算标准差
public double calcSD(int[] nums) {
double average = calcAverage(nums);// 先计算出平均值
double sum = 0;// 根据标准差公式,先求出各数与平均值的差的平方的总和
for (int i = 0; i < nums.length; i++) {
sum = sum + (nums[i] - average) * (nums[i] - average);
}

return Math.sqrt(sum / 10);// 返回标准差
}
}

这里的排序方法能帮到你。输入的时候你改成取随机数输入就好了。


你要求最大的数放在a[0],那么是从大到小排列,if (nums[j] > nums[j + 1])中的>改成<就好了。

网友(2):

算法如下,这是很容易想到的思路,不懂可以再问:

int[] a = new int[100];
for (int i = 0; i < 100; i++) {
a[i] = (int)(Math.random() * 100);
}
Arrays.sort(a);
//交换首位的数值
a[0] = a[0] ^ a[99];
a[99] = a[0] ^ a[99];
a[0] = a[0] ^ a[99];

for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}