数字计算
生成10个75-100之间(包含75和100)的随机整数,将其存放到数组中,并遍历输出数组的数据
求该数组的数据之和和平均数(平均数保留两位小数点)
求该数组的最大值和最小值
请任选冒泡、选择、插入或其他排序算法,对上述的数组进行排序,请注明你采用的排序算法
思路:
- 生成随机数random,但是我们知道随机数的产生都是 [0,i)(i 是用户决定的最大值)
- 这样就会不满足题目要求,我们可以这样做
random.nextInt(26)+75;
随机产生的最大值为25,最小值为0加上75就满足了条件 - 用
for
循环将随机生成的整数添加到数组中 - 遍历数组,同时将所有的数加起来
- 求平均数保留两位小数,无论用
double
接收或者用float
接收,都会导致精度不准 - 所以我们在接收和的时候用
double
类型的变量存储即可,然后求平均值 - 但是这样还是不满足保留两位小数,所以需要用
String.format()
包装,String avg1 = String.format("%.2f", avg);
- 求最大值与最小值可以先进行排序再获取数组的头和尾下标进行输出
代码:
import java.util.Random;
public class A {
public static void main(String[] args) {
//定义数组
int[] a = new int[10];
Random random = new Random();
for (int i = 0; i < 10; i++) {
a[i] = random.nextInt(26) + 75;//随机生成一个小于26的数,再加上75,无论如何都小于100且大于70
System.out.print(a[i] + " ");
}
avg(a);
sort(a);
}
//求平均数
public static void avg(int[] randomList) {
//声明变量sum,存储和
double sum = 0;
for (int i = 0; i < 10; i++) {
sum = randomList[i] + sum;
}
System.out.println();
//声明变量avg,存储平均数
double avg = sum / 10;
String avg1 = String.format("%.2f", avg);
System.out.println("平均数为:" + avg1);
}
//冒泡排序
public static void sort(int[] sort) {
for (int i = 0; i < sort.length - 1; i++) {
for (int j = 0; j < sort.length - 1 - i; j++) {
if (sort[j] < sort[j + 1]) {
int temp = sort[j];
sort[j] = sort[j + 1];
sort[j + 1] = temp;
}
}
}
System.out.println();
System.out.println("最大值为:" + sort[0]);
System.out.println("最小值为:" + sort[sort.length - 1]);
System.out.println();
System.out.println("冒泡排序后的数组:");
for (int i = 0; i < sort.length; i++) {
System.out.print(sort[i] + " ");
}
}
}