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