[JAVA]给定一个整形数组,求其和、平均数、最大值及最小值、打印数组中的数据

[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~

  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值