[JAVA]给定一个整形数组,求其和、平均数、最大值及最小值、打印数组中的数据
2017-12-04 12:08
344 查看
[JAVA]给定一个整形数组,求其和、平均数、最大值及最小值、打印数组中的数据
分析思路
首先需要我们自己定义一组整形类数组,在这里直接使用数组的静态定义方法直接定义数组并赋值int[] a= {2,5,6,11,4,3,1,23};即可。
之后变开始编写这几种要求下的方法。
1.求和
求和是这个问题中较为简单的一个,只需要用for循环对数组进行遍历,在循环体中每次累加,之后将累加值返回至main函数即可。
2.求平均值
求平均值可以是在求和的基础上,再除以数组的总长度即可,这里只需要在上一问题的for循环外部,用累加和除以数组总长,关键的代码为
avr=sum/c.length;就可以实现求均值,之后再将均值返回主函数就可以了。这里在定义平均值的时候需要将变量定义为
double类型,因为平均值很大的可能为小数类型。
3.求最大最小值
在求最大、最小值的时候,首先要做的就是对数组进行排序,这次我是用的排序算法为冒泡排序法(升序),对数组排完序之后再返回拍好序数组的第一个元素和最后一个元素,就分别对应了该数组中的最小/最大值。关键的冒泡排序算法如下:
for (int i = 1; i <= d.length-1; i++) { for (int j = 0; j < d.length-i; j++) { if(d[j]>d[j+1]) { int temp=d[j+1]; d[j+1]=d[j]; d[j]=temp; }
这一小问中没能够返回多个值,所以是将最大最小值分为了两种不同的方法返回到主函数中的。
4.打印数组中的元素
这个问题为简单,只需要用for循环将数组遍历,并在循环体中
System.out.print(数组名[循环变量]+" ");就可以完成数组内容的打印了。
源代码
整个代码块一共有编写了五种方法,从主函数中去调用每一种方法即可。具体代码如下package com.Week2;
public class homework1 {
public static void main(String[] args) {
int[] a= {2,5,6,11,4,3,1,23};
print(a);
int sum=sum(a);
double avr=avr(a);
int max=max(a);
int min=min(a);
System.out.println("The sum is:"+sum);
System.out.println("The average is:"+avr);
System.out.println("The max number is:"+max);
System.out.println("The min number is:"+min);
}
public static int sum(int[] b) {
int sum=0;
for (int i = 0; i < b.length; i++) {
sum+=b[i];
}
return sum;
}
public static double avr(int[] c) {
double sum=0;
double avr;
for (int i = 0; i < c.length; i++) {
sum+=c[i];
}
avr=sum/c.length;
return avr;
}
public static int max(int[] d) {
for (int i = 1; i <= d.length-1; i++) { for (int j = 0; j < d.length-i; j++) { if(d[j]>d[j+1]) { int temp=d[j+1]; d[j+1]=d[j]; d[j]=temp; }}
}
int max=d[d.length-1];
return max;
}
public static int min(int[] d) {
for (int i = 1; i <= d.length-1; i++) { for (int j = 0; j < d.length-i; j++) { if(d[j]>d[j+1]) { int temp=d[j+1]; d[j+1]=d[j]; d[j]=temp; }}
}
int min=d[0];
return min;
}
public static void print(int[] f) {
System.out.print("The array is:");
for (int i = 0; i < f.length; i++) {
System.out.print(f[i]+" ");
}
System.out.println();
}
}
Enjoy it~
相关文章推荐
- JAVA冒泡排序/JAVA冒泡排序再找出给定数据中的最大值最小值/JAVA数组排序
- 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大 java实现
- 给定一个任意长度的java数组,求数组内的数能组合出来的最大整数
- Java给定一个数组,数组元素是一些正整数,求这些正整数收尾详解得出的最大数或最小数
- 给定一个整形数组(10个元素)求出最大值。
- java__给定一个非负整数数组,假定你的初始位置为数组第一个下标。 数组中的每个元素代表你在那个位置能够跳跃的最大长度。 请确认你是否能够跳跃到数组的最后一个下标。
- java 冒泡法,找一个数组的最大最小值,foreach。
- [java大数据面试] 2018年4月百度面试经过+三面算法题:给定一个数组,求和为定值的所有组合.
- JAVA :在给定一个数组中,可以取得多个连续的子串。在众多子串中,求各元素和为最大值的连续子串!
- [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
- 华为:给定一个数组input[],如果数组长度n为奇数,则将数组中最大的元素放到 output[]数组最中间的位置,如果数组长度n为偶数。。
- HDU 1024 Max Sum Plus Plus(动态规划,给定一个数组,求其分成m个不订交子段和最大值的题目)
- 给定数组a[1,2,3],用a里面的元素来生成一个长度为5的数组,打印出其排列组合
- java求得一维数组中最小值和最大值
- java小例子:打印一个近似圆,要求根据给定半径圆的大小随之发生改变
- 如果给定一个数组arr[0,...N-1],要求找出相邻两个数的最大差值
- 给定只包含正数的数组,给出一个方法,将数组中的数拼接起来,得到的数,是最大的。
- 编写一个函数print,打印一个学生的成绩数组,该书组中有五个学生的数据,每个学生的数据包括num(学号)、name(姓名)、score(3门课的成绩)、用主函数输入这些数据,用print函数输出这些
- 2、 java 已知一个int数组, 编程从数组中获取最大数.
- HDU 1024 Max Sum Plus Plus(动态规划,给定一个数组,求其分成m个不相交子段和最大值的问题)