数组求和与平均数
2016-08-23 18:41
162 查看
题目是:题目:设计一个方法,可以获取任意范围的随机整数
生成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;
}
}
生成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;
}
}
相关文章推荐
- 数组复习及Scanner类 ,及对最大值,最小值、平均数、求和等基本算法的理解
- leetCode303. 数组范围求和 - 顺序不变
- 算法学习-连续子数组求和最大值
- ARM汇编(1):若干整数数的最大值最小值问题、求和问题、平均数问题
- 数组面试题--数组求和
- 公司面试题——线程数组求和
- SSE练习:单精度浮点数组求和
- 树状数组从前往后求和,用来解第k大(或小)的数 poj 2985 The k-th Largest Group
- 51nod 1081 子段求和(树状数组)
- D 区间求和 [数学 树状数组]
- Sql查询技巧:联合查询,求和,求平均数等。
- leetcode 486. Predict the Winner 预测最后赢家+数组头尾部取元素求和+动态规划DP
- 树状数组从前往后求和,用来解第k大(或小)的数 poj 2985 The k-th Largest Group
- C++第5次作业: 【项目2】:数组选择 【项目5】:求和
- 树状数组扩展(异或求和)
- 递归实现数组求和
- C++第六次上机作业——数组合并 矩阵求和
- 数组求和的快速方法(利用cuda的共享内存)--第三部分之性能分析
- [C] 跨平台使用Intrinsic函数范例2——使用SSE2、AVX指令集 处理 双精度浮点数组求和
- js编程:数组求和