JAVA随机产生1-100的随机数,保存到a组,数组中最大值存放到a[0]位置
2个回答
展开全部
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])中的>改成<就好了。
推荐于2018-05-09
展开全部
算法如下,这是很容易想到的思路,不懂可以再问:
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]);
}
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]);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询