JAVA基础综合一
程序员文章站
2022-06-10 11:13:19
...
a)生成20个取值范围在0-20(包含20)之间的随机数,并将其存放到数组中
b)求数组中这20个随机数的总和和平均数,平均数取整即可,不考虑小数点
c)采用排序算法,这20 个整数按照从小到大排序后输出(自己写排序算法,不要调用Arrays的方法。)
d)实现对排序后的数字进行出现次数的统计,要求输出的顺序和排序的顺序一致,请参考效果图(不使用集合)
/**
* @author 万星明
* @version 创建时间:2018年10月26日 下午2:59:15
* a)生成20个取值范围在0-20(包含20)之间的随机数,并将其存放到数组中(2分)
b)求数组中这20个随机数的总和和平均数,平均数取整即可,不考虑小数点(3分)
c)采用排序算法,这20 个整数按照从小到大排序后输出(自己写排序算法,不要调用Arrays的方法。)(3分)
d)实现对排序后的数字进行出现次数的统计,要求输出的顺序和排序的顺序一致,请参考效果图(不使用集合)(7分)
*/
public class Test1 {
public static void main(String[] args) {
Statistic(randomMath());
}
//a)生成20个取值范围在0-20(包含20)之间的随机数,并将其存放到数组中
public static int[] randomMath() {
int[] randomNum = new int[20];
for(int i=0;i<20;i++) {
randomNum[i]=(int)(Math.random()*21);
}
return randomNum;
}
//b)求数组中这20个随机数的总和和平均数,平均数取整即可,不考虑小数点
public static int[] sumAve(int[] randomNum) {
//创建一个int数组存放总和sumAveNum[0],平均数sumAveNum[1]
int[] sumAveNum = {0,0};
//对传入的randomNum进行遍历,求总和
for (int i = 0; i < randomNum.length; i++) {
sumAveNum[0] = sumAveNum[0]+randomNum[i];
}
//用求出的总和sumAveNum[0],求平均数
sumAveNum[1] = (int)sumAveNum[0]/randomNum.length;
//返回sumAveNum数组
return sumAveNum;
}
//c)采用排序算法,这20 个整数按照从小到大排序后输出(自己写排序算法,不要调用Arrays的方法。)
public static void sort(int[] randomNum) {
//对传入的数组进行遍历
for(int i=0;i<randomNum.length;i++) {
//依次拿数组元素,与后面的所有元素比较
for(int j=0;j<randomNum.length-i-1;j++) {
//如果前一个数大于后一个数,就交换位置
if(randomNum[j]>randomNum[j+1]) {
int temp = randomNum[j];
randomNum[j] = randomNum[j+1];
randomNum[j+1] = temp;
}
}
}
//输出排序后的数组
for(int i=0;i<randomNum.length;i++) {
System.out.println(randomNum[i]);
}
}
//d)实现对排序后的数字进行出现次数的统计,要求输出的顺序和排序的顺序一致,请参考效果图(不使用集合)
public static void Statistic(int[] randomNum) {
//创建一个20容量的整型数组
int[] frequency = new int[21];
//对传入的随机数组进行遍历
for (int i = 0; i < randomNum.length; i++) {
//在每个相对应数组的元素频率上加1
frequency[randomNum[i]]++;
}
//遍历频率数组
for (int i = 0; i < frequency.length; i++) {
//如果数组元素值不为0,则输出
if(frequency[i]!=0) {
System.out.println(i+"出现:"+frequency[i]+"次");
}
}
}
}