练习(二)

1:(25分)给定一个int类型的数组,要求:

     1.求和

     2.求平均数(int)

     3.求最大值,最小值

     4.打印这个数组中数据

代码:

package org.homework;

public class Array1 {

	public static void main(String[] args) {
		int[] a={22,13,14,34,65,18};
		int i=0;
		int sum=sum(i,a);
		System.out.println(sum);   //输出数组中数据之和
		int average=average(i,sum,a);
		System.out.println(average);    // 输出平均数
		int max=max(a);
                System.out.println(max);       //输出最大值
                System.out.println(min(a));     //输出最小值
		for(i=0;i<a.length;i++){
		   System.out.print(a[i]+",");   //输出数组中的数据
		}
	}
	

	 public static int sum(int i,int[] a) {
                int sum=0;
		for(i=0;i<a.length;i++){
			sum+=a[i];
                }return sum;
	} 
	
	public static int average(int i, int sum,int[] a) {
		int average;
		average=sum/a.length;
	        return average;
	}

	public static int max(int[] a){
                int max=a[0];
		for(int i=0;i<a.length;i++){
		     max=(max>a[i]?max:a[i]);  //运用三目运算符找出最大值
                }
		return max;
	}	
	public static int min(int[] a){
		int min=a[0];
		for(int i=0;i<a.length;i++){
		    min=(min<a[i]?min:a[i]);   //运用三目运算符找出最小值
	        }
		return min;	
	}
结果运行图:



2:(25分)给定两个整型数组a和b,找出其共同元素。

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

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

   要找出:12,45,11

代码:

package org.homework;

public class FindSame {

	public static void main(String[] args) {
		int[] a={23,12,45,11};
		int[] b={99,33,12,45,67,11};
		sameNumeber(a,b);
	}
	public static void sameNumeber(int[] a,int[] b){
		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. (25分)在某歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。

 10位评委对某歌手的打分分别是:78、60、85、96、77、66、60、82、88、85。计算该歌手的最终得分。

代码:

package org.homework;

public class SingingGame {

	public static void main(String[] strs) {
		int[] a={78,60,85,96,77,66,60,82,88,85};
		max(a);
		min(a);
		sum(a);
		System.out.println(average(sum(a),min(a),max(a),a));
	}
	public static int max(int[] a){  //自己写的一个方法用三目运算符找出最大值
                int max=a[0];
		for(int i=0;i<a.length;i++){
		   max=(max>a[i]?max:a[i]);
                }
		return max;
	}	
	public static int min(int[] a){   //同样方法找出最小值(也可用if语句)
		int min=a[0];
		for(int i=0;i<a.length;i++){
		   min=(min<a[i]?min:a[i]);
	        }
		return min;	
	}
	public static int sum(int[] a){    //计算数组数据之和
		int sum=0;
		for(int i=0;i<a.length;i++){
			sum+=a[i];
		}return sum;
	}
	public static double average(int sum,int min,int max,int[] a){   //写方法求去掉最大值和最小值后的平均数
		double average=(double)(sum-max-min)/(a.length-2);
	        return average;
	}
}
结果运行图:




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

......

代码:

package org.homework;

public class Rabbit {
	public static void main(String[] args){
		int month = 0;
		for(month=1;month<=12;month++){	   //限制月数为1~12个月
			int sum=count(month);	  //定义sum接收count方法返回的值
			System.out.println("第"+month+"个月有"+sum+"只兔子");    //输出每个月的兔子数
		}	
	}

	public static int count(int month){	//定义一个返回值为int类型的方法
		int num=1;	//定义兔子的初始数量num为1对
		if(month>=3){	
			num = count(month-1) + count(month-2);	//从第三个月开始兔子的数量等于前两个月兔子数量的和
		}
		return num;//返回兔子的数量
	}

}
结果运行图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值