JavaDay04--Homework(去最高/低分后的平均分+兔子繁殖+数组最大/小值和打印+双数组求共同元素)

1. 给定一个int类型的数组,要求:

(1)求和;

(2)求平均数(int);

(3)求最大值,最小值;

(4)打印这个数组中数据。

分析:(1)迭加(循环法)

     (2)迭加(循环法)→除法得商+强制转型

     (3)排序(插入法)→首尾取数

     (4)遍历(循环法)

package array;

import java.util.Scanner;

public class Array1 {

   public static void main(String[] args) {

      int[] a={33,77,11,66,22,88,44,99,55};

      Scanner scan=new Scanner(System.in);

      System.out.println("请输入要求实现的功能的数字:\n1.求和  2.求平均数\n3.求最大值与最小值  4.打印这个数组中数据");

        String function=scan.next();

        long sum = 0;

        switch(function){

           case"1":

           for(int i=0;i<a.length;i++){

               sum += a[i];

             }

             System.out.println("和的值:"+sum);

           break;

           case"2":

           for(int i=0;i<a.length;i++){

               sum += a[i];

             }

             int ave = (int)(sum/a.length);

           System.out.println("平均数的值:"+ave);

           break;

           case"3":

           for (int i=1;i<=a.length-1;i++) {

               int data=a[i];  // 当前“指示灯数据”

               int j=i-1;   // 使用j变量记录“指示灯数据”的前一个数据的索引

               while(j>=0 && data<a[j]){

                 a[j+1]=a[j];   // 后移“指示灯”数据前面的数据

                 j--;

               }

               a[j+1]=data;

            }

           System.out.println("最大值:"+a[a.length-1]+"  "+"最小值:"+a[0]);

           break;

           case"4":

           System.out.println("打印此数组中的数据:");

           for(int i=0;i<a.length;i++){

                 System.out.print(a[i]+"  ");

            }

           break;

        default:

            System.out.println("您输入的数字有误!");

        }

        scan.close();  // 关闭

   }

}



2. 给定两个整型数组a和b,找出其共同元素。

eg:int[] a={23,12,45,11};

     int[] b={99,33,12,45,67,11};

     需要找出:12,45,11

    分析:遍历数组→有序判断数组中元素一致→输出相同元素

package array;

public class Array2 {

   public static void main(String[] args) {

      int[] a={23,12,45,11};

        int[] b={99,33,12,45,67,11};

      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]+"  ");

                }

            }

      }

   }

}


 

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

计算该歌手的最终得分。

分析:排序(插入法,从第一个至最后一个)→迭加(从第二个至倒数第二个)→除法

package array;

public class Array3 {

   public static void main(String[] args) {

      int[] a={78,60,85,96,77,66,60,82,88,85};

      double sum=0;

        for (int i=1;i<=a.length-1;i++) {

        int data=a[i]; 

        int j=i-1;

        while(j>=0 && data<a[j]){

           a[j+1]=a[j];

           j--;

        }

        a[j+1]=data;

        }

        for (int i=1;i<=a.length-2;i++) {

        sum=sum+a[i];

      }

      double ave=sum/(a.length-2);

      System.out.print("该歌手的最终得分是:"+ave);

   }

}


 

 

4. 兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。初始有一对小兔子,假设所有兔子都不死。

计算前12个月每个月的兔子对数。

分析:

第一个月:1对

第二个月:1对

第三个月:2对

第四个月:3对

第五个月:5对

......

  易知符合Fibonacci数列。设每个月的兔子对数为an,则有

 

package array;

import java.util.Scanner;

public class Array4 {

   public static void main(String[] args) {

      Scanner scan=new Scanner(System.in);

      System.out.print("请输入月份数:");

      intn=scan.nextInt();

      Fib(n);

      scan.close();

   }

   public static void Fib(int n){

      int mon1 = 1,mon2 = 1,monSum = 0;

      if(n < 2){

        return;

      }

      for(int i = 1;i < n+1;i++){

        mon1 = mon2;

        mon2 = monSum;

        monSum = mon1 + mon2;

        System.out.println("第"+i+"月的兔子对数:"+monSum);

      }

      return;

   }

}

Copyright © 2017 Jin Hanquan. All rights reserved.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值