有关数组的题目
1.生成10个75-100之间(包含75和100)的随机整数,将其存放到数组中,并遍历输出数组的数据(10分)
2.求该数组的数据之和和平均数(平均数保留两位小数点)(10分)
3.求该数组的最大值和最小值(10分)
4.请使用冒泡或其他排序算法,对上述的数组进行排序,请注明你采用的排序算法(20分)
package com.qf.test1;
import java.util.Random;
/**
* @author Zhouzilong
* @date 2019/7/26
*/
public class Test {
public static void main(String[] args) {
int test[] = new int[10];
double num = 10.0;
initial(test);
print(test);
System.out.println("\n");
System.out.println("数组数据之和:"+sum(test));
System.out.printf("数组数据平均值:%.2f\n",sum(test)/num);
System.out.println("最大值为:"+max(test));
System.out.println("最小值为:"+min(test));
System.out.print("冒泡排序后排序后");
bubbleSort(test);
print(test);
}
//初始化数组
private static void initial(int[] x) {
for (int i = 0; i < x.length; i++) {
Random r = new Random();
x[i] = r.nextInt(26)+75;
}
}
//遍历打印数组
private static void print(int[] x) {
System.out.println("遍历输出数组数据:");
for (int i = 0; i < x.length; i++) {
System.out.print(x[i]+" ");
}
}
//求和
private static int sum(int[] x) {
int sum = 0;
for (int i = 0; i < x.length; i++) {
sum+=x[i];
}
return sum;
}
//求最大值
private static int max(int[] x) {
for (int i = 0; i < x.length-1; i++) {
if (x[i+1] > x[0]) {
int temp = x[i+1];
x[i+1] = x[0];
x[0] = temp;
}
}
return x[0];
}
//求最小值
private static int min(int[] x) {
for (int i = 0; i < x.length-1; i++) {
if (x[i+1] < x[0]) {
int temp = x[i+1];
x[i+1] = x[0];
x[0] = temp;
}
}
return x[0];
}
//冒泡排序
private static void bubbleSort(int[] x) {
for (int i = 0; i < x.length-1; i++) {
for (int j = 0; j < x.length-i-1; j++) {
if (x[j] > x[j+1]) {
int temp = x[j+1];
x[j+1] = x[j];
x[j] = temp;
}
}
}
}
}
需要注意的点:随机数值的范围包括两端,而nextInt()方法的描述为:返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。所以r.nextInt()方法中的参数应该填26。