数组求和与平均数
生成20個(gè)取值范圍在35-60之間的隨機(jī)數(shù),并將其存放到數(shù)組中
求數(shù)組中這20個(gè)隨機(jī)數(shù)的總和和平均數(shù),平均數(shù)取整即可,不考慮小數(shù)點(diǎn)采用排序算法,
這20 個(gè)整數(shù)按照從小到大排序后輸出(自己寫排序算法,不要調(diào)用Arrays的方法)。
題目分析:首先我們來分析一下,題目要求我們是求解數(shù)組的和與平均數(shù)
? ? ? ? ? ? ? ? ?1.明確需求(求和與平均數(shù))
? ? ? ? ? ? ? ? ?2.分析題目含義,構(gòu)建思路框架
? ? ? ? ? ? ? ? ?3.明確步驟,每一步驟所需用到的基礎(chǔ)知識(shí)(語句,方法與對象)
? ? ? ? ? ? ? ? ?4.代碼的實(shí)現(xiàn)(用java語言來實(shí)現(xiàn))
代碼實(shí)現(xiàn)如下:
package com.qf.ArrayList;
import java.util.Random;
/**
?* 題目:設(shè)計(jì)一個(gè)方法,可以獲取任意范圍的隨機(jī)整數(shù)
生成20個(gè)取值范圍在35-60之間的隨機(jī)數(shù),并將其存放到數(shù)組中
求數(shù)組中這20個(gè)隨機(jī)數(shù)的總和和平均數(shù),平均數(shù)取整即可,不考慮小數(shù)點(diǎn)
采用排序算法,這20 個(gè)整數(shù)按照從小到大排序后輸出(自己寫排序算法,
不要調(diào)用Arrays的方法。
* @author author:hth?
* @version time:2016年8月16日 下午9:01:24?
*
?*/
public class RandomTest {
public static void main(String[] args) {
//調(diào)用方法輸出20個(gè)隨機(jī)數(shù)
int[] num=new int[20];
//循環(huán)遍歷數(shù)組元素
System.out.print("step1:隨機(jī)產(chǎn)生的20個(gè)數(shù):");
System.out.print("[");
//求和與平均數(shù)
for(int i=0;i<num.length;i++){
num[i]=getNum(35,60);
System.out.print(num[i]+" ");
}
System.out.print("]"+"\n");
System.out.println("step2:總和為:"+sum(num)+"平均值為:"+avg(num, num.length));
//實(shí)現(xiàn)隨機(jī)20個(gè)數(shù)的排列順序(設(shè)計(jì)一個(gè)方法:冒泡排序)
for (int i = 0; i < num.length; i++) {
? ? ? ?for (int j = i; j < num.length; j++) {
? ? ? ? ? ?if(num[i] > num[j]){
? ? ? ? ? ? ? ?int temp = num[j];
? ? ? ? ? ? ? ?num[j] = num[i];
? ? ? ? ? ? ? ?num[i] = temp;
? ? ? ? ? ?}
? ? ? ?}
? ?}
//再次循環(huán)遍歷輸出結(jié)果。
System.out.print("setp3;排序后的結(jié)果為: [");
? ?for (int i = 0; i < num.length; i++) {
? ? System.out.print(num[i]+" ");
? ?}
? ?System.out.print("]");
}
/**
*構(gòu)造方法求隨機(jī)數(shù)?
* @param start
* @param end
* @return?
*/
public static int getNum(int start,int end){
/*//第一種方法求隨機(jī)數(shù)
return (int)Math.random()*((end-start+1)+start);*/
//第二種方法求隨機(jī)數(shù)
Random ra=new Random();
int number=ra.nextInt(end-start+1)+start;
return number;
}
/**
* 構(gòu)造方法求和
* @param num
* @return
*/
public static int sum(int[] num) {
int sum = 0;
for (int n : num) {
sum += n;
}
return sum;
}
/**
* 構(gòu)造方法求平均數(shù)
* @param num
* @param n
* @return
*/
public static int avg(int[] num, int n) {
int sum = sum(num);
int avg = sum / n;
return avg;
}
}
總結(jié)
- 上一篇: 根据四个点坐标排列出左上右上右下左下位置
- 下一篇: 如何讲解系统框图