java基础作业一

来源:互联网 发布:网络推广的面试问题 编辑:程序博客网 时间:2024/05/16 15:39

作业一

  1. 给定一个int类型的数组,要求:
    1.求和
    2.求平均数(int)
    3.求最大值,最小值
    4.打印这个数组中数据

代码如下:

package homework2;public class ComputeArrayDemo {    public static void main(String[] args) {        /**         * 给定一个int类型的数组,要求:         * 1.求和         * 2.求平均数(int)         * 3.求最大值,最小值         * 4.打印这个数组中数据         */        int[] a={12,25,7,65,32,55};        sum(a);//求数组的和        average(a);//求数组的平均值        max(a);//求数组中的最大值        min(a);//求数组中的最小值        print(a);//打印数组    }    private static void print(int[] a) {        // 打印数组        System.out.print("数组打印结果为:");        for (int i = 0; i < a.length; i++) {             System.out.print(a[i]+" ");        }    }    private static void min(int[] a) {        // 求最小值        int min1=a[0];        for (int i = 0; i < a.length; i++) {            if(a[i]<min1){                min1=a[i];            }        }        System.out.println("数组最小值为:"+min1);    }    private static void max(int[] a) {        // 求数组中的最大值        int max1=a[0];        for (int i = 0; i < a.length; i++) {            if(a[i]>max1){                max1=a[i];            }            System.out.println();        }        System.out.println("数组中最大值为:"+max1);    }    private static void average(int[] a) {        // 数组求平均值(int)        int y = 0,z=0;        for (int i = 0; i < a.length; i++) {            y+=a[i];        }        z=y/a.length;        System.out.println("数组平均值为:"+z);    }    private static void sum(int[] arr) {        // 求和方法        int x=0;        for (int i = 0; i < arr.length; i++) {            x+=arr[i];        }        System.out.println("数组求和结果为:"+x);    }}

运行结果:
数组求和结果为:196
数组平均值为:32
数组中最大值为:65
数组最小值为:7
数组打印结果为:12 25 7 65 32 55


作业二

  1. 给定两个整型数组a和b,找出其共同元素。
    eg:int[] a={23,12,45,11};
    int[] b={99,33,12,45,67,11}
    要找出:12,45,11

代码如下:

package homework2;public class ElementFundDemo {    public static void main(String[] args) {        /**         * 给定两个整型数组a和b,找出其共同元素。         * eg:int[] a={23,12,45,11};         * int[] b={99,33,12,45,67,11};         * 要找出:12,45,11         */        int[] a={23,12,45,11};        int[] b={99,33,12,45,67,11};        fund(a,b);    }    private static void fund(int[] a,int[] b) {        /*         *  查找相同元素         *  并各自打印出对应的12,45,11         */        System.out.println("数组中相同的元素为:");        for (int i = 0; i < a.length; i++) {            for (int j = 0; j < b.length; j++) {                if(a[i]==b[j]){                    System.out.print(a[i]+"  ");                }            }        }    }}

代码运行结果:
数组中相同的元素为:
12 45 11


作业三

  1. 在某歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,
    去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。
    10位评委对某歌手的打分分别是:78、60、85、96、77、66、60、82、88、85。
    计算该歌手的最终得分。

代码如下:

package homework2;import java.util.Scanner;public class SingerScoreDemo {    public static void main(String[] args) {        /*在某歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,         * 然后剩余的8位评委的分数进行平均,就是该选手的最终得分。         * 10位评委对某歌手的打分分别是:78、60、85、96、77、66、60、82、88、85.计算该歌手的最终得分。         */         Scanner scan= new Scanner(System.in);         float   a=0;         float[] b=new float[10];         int i=0;         for ( i = 0; i < b.length; i++) {             System.out.println("请分别输入十位评委给出的分数:");             a=scan.nextInt();              b[i]=a;        }         for (int j = 0; j < b.length; j++) {            System.out.print(b[j]+" ");        }        float score=finalScore(b);         System.out.println("该歌手最终成绩为:"+score);        scan.close();    }    private static float finalScore(float[] b) {        // 计算歌手最终成绩        float max=b[0];        for (int i = 0; i < b.length; i++) {            if(b[i]>max){                max=b[i];            }        }        float min=b[0];        for (int i = 0; i < b.length; i++) {            if(b[i]<min){                min=b[i];            }        }        System.out.println();        System.out.print("去掉一个成绩中的最大值:"+max+"去掉一个成绩中的最小值:"+min);        System.out.println();        float average=0;        float sum=0;        for (int i = 0; i < b.length; i++) {            sum+=b[i];            average=(sum-max-min)/(b.length-2);        }        return average;    }}

运行结果:
请分别输入十位评委给出的分数:
78
请分别输入十位评委给出的分数:
60
请分别输入十位评委给出的分数:
85
请分别输入十位评委给出的分数:
96
请分别输入十位评委给出的分数:
77
请分别输入十位评委给出的分数:
66
请分别输入十位评委给出的分数:
60
请分别输入十位评委给出的分数:
82
请分别输入十位评委给出的分数:
88
请分别输入十位评委给出的分数:
85
78.0 60.0 85.0 96.0 77.0 66.0 60.0 82.0 88.0 85.0
去掉一个成绩中的最大值:96.0去掉一个成绩中的最小值:60.0
该歌手最终成绩为:77.625


作业四

  1. 兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。
    初始有一对小兔子,假设所有兔子都不死,计算前12个月每个月的兔子对数。
    分析:
    第一个月:1对
    第二个月:1对
    第三个月:2对
    第四个月:3对
    第五个月:5对
    等等……..

代码如下:

package homework2;import java.util.Scanner;public class RabbitDemo {    public static void main(String[] args) {        /**         * 兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。         * 初始有一对小兔子,假设所有兔子都不死,计算前12个月每个月的兔子出生的对数。         * 分析:         * 第一个月:1对         * 第二个月:1对         * 第三个月:2对         * 第四个月:3对         * 第五个月:5对         *......         *          */        int count=0;        System.out.println("请输入要计算兔子对数的月份:");        Scanner scan=new Scanner(System.in);        int month=scan.nextInt();        for (int i = 1; i <= month; i++) {            count=f(i);            System.out.print("第"+i+"月出生的兔子数量:");            System.out.println(count+"对 ");        }        System.out.println();        scan.close();    }    private static int f(int x) {        // 计算每个月出生的兔子的对数        if (x == 1 || x == 2){            return 1;        }        else if(x>2) {            return f(x - 1) + f(x - 2);        }        return x;    }}

代码运行结果:
请输入要计算兔子对数的月份:
12
第1月出生的兔子数量:1对
第2月出生的兔子数量:1对
第3月出生的兔子数量:2对
第4月出生的兔子数量:3对
第5月出生的兔子数量:5对
第6月出生的兔子数量:8对
第7月出生的兔子数量:13对
第8月出生的兔子数量:21对
第9月出生的兔子数量:34对
第10月出生的兔子数量:55对
第11月出生的兔子数量:89对
第12月出生的兔子数量:144对