Java题目-数组练习(三)

作业1:
请输入10位同学的java成绩,
1、求平均成绩,最高成绩、最低成绩
2、对10的成绩按照从低到高的顺序排列(选做)

package homework;
/**作业1:
	请输入10位同学的java成绩,
	1、求平均成绩,最高成绩、最低成绩
	2、对10的成绩按照从低到高的顺序排列(选做)*/
//import java.util.*;
public class Hw01 {

	public static void main(String[] args) {
//		Scanner sc = new Scanner(System.in);
//		 循环接受输入的10个成绩
//		double[] arr = new double[10]; 
//		for (int i = 1; i<=10; i++) {
//			System.out.print("请输入第"+i+"个同学的成绩:");
//			double score = sc.nextDouble();
//			arr[i-1] = score;
//		}
		
		// 遍历数组
//		for (double i : arr) {
//			System.out.println(i);
//		}
		
		
		// 通过输入做有些麻烦,这里面直接给出数据了	
		// 数组初始化分动态和静态两种,是不允许同时使用的
		double[] arr = new double[]{56,78,98,99,66,88,77,68,74,100}; 
		System.out.println(avg(arr));
		max_min(arr);
		sort(arr);
	}
	
	// 求平均值
	public static double avg(double[] arr) {
		// 求和
		double sum = 0;
		for (double i : arr) {
			sum += i;
		}
		double avg = sum / 10; 
		return avg;
	}
	
	// 求最大值最小值
	public static void max_min(double[] arr) {
		double min = arr[0];
		double max = arr[0];
		for (double i : arr) {
			if (i < min) {
				min = i;
			}
			if (i > max) {
				max = i;
			}
		}
		System.out.println("min:"+min);
		System.out.println("max:"+max);
	}
	
	//排序  从低到高
	public static void sort(double arr[]) {
		// 先默认第一个是最小的,依次循环把每次最小的找出来放在前面
		for (int i = 0; i < arr.length; i++) {
			for (int j = i+1; j <arr.length; j++) {
				if (arr[j] < arr[i]) {
					double temp = arr[j];// 接收小值
					arr[j] = arr[i];
					arr[i] = temp;
				}
			}
		}
		for (double i : arr) {
			System.out.println(i);
		}
	}
}

作业2:
给定一个数组,判断某个元素是否在该数组中

package homework;
//给定一个数组,判断某个元素是否在该数组中
public class Hw02 {
	public static void main (String[] args) {
		String element = "xiaozhang";
		String[] arr = new String[] {"xiaozhao","zhangsan","xiaozhang"};
		System.out.println(judge(element, arr));
	}
	
	// 判断元素是否在数组里面
	public static Boolean judge(String element,String[] arr) {
		for (String i : arr) {
			if (i == element) {
				return true;
			}
		}
		return false;
	}
}

作业3:

给定一个数组,大小为10,输入十个同学的成绩,求这些成绩的总分数
某一天转入2个新同学,请再次求12个同学的平均成绩(尝试着使用扩容的形式做)
package homework;
/*给定一个数组,大小为10,输入十个同学的成绩,求这些成绩的总分数
	某一天转入2个新同学,请再次求12个同学的平均成绩(尝试着使用扩容的形式做)*/
public class Hw03 {

	public static void main(String[] args) {
		// 通过输入做有些麻烦,这里面直接给出数据了	
		// 数组初始化分动态和静态两种,是不允许同时使用的
		int[] arr = new int[]{56,78,98,99,66,88,77,68,74,100};
		System.out.println("10人的总成绩是:"+sum(arr));
		arr = arr_big(arr,12);
		arr[10] = 98;
		arr[11] = 90;
		for (int i : arr) {
			System.out.println(i);
		}
		System.out.println("12人的平均成绩是:"+avg(arr));
	}
	
	// 求和
	public static int sum(int[] arr) {
		int sum = 0;
		for (int i : arr) {
			sum += i;
		}
		return sum;
	}
	
	// 求平均值
		public static double avg(int[] arr) {
			// 求和
			int sum = Hw03.sum(arr);
			double avg = sum / 10; 
			return avg;
		}
		
	// 数组扩容                 原数组     扩成多少位
	public static int[] arr_big(int[] arr, int len) {
		int[] newArr = new int[len];
		for (int i = 0; i < arr.length; i++) {
			newArr[i] = arr[i];
		}
		return newArr;
	}
}

作业4:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
{10, 8, 5, 3, 27, 99}

package homework;
/*作业4:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
	{10, 8, 5, 3, 27, 99}*/

public class Hw04 {
	public static void main(String[] args) {
		int[] arr = new int[]{10, 8, 5, 3, 27, 99};
		System.out.println(getCoin(arr));
	}
	
	public static int getCoin(int[] arr) {
		int count = 0;
		for (int i = 0; i < arr.length; i++) {
			int num = arr[i];
			if (num % 2 == 0) {
				count += num / 2;
			} else {
				count += num / 2 + 1;
			}
		}
		return count;
	}

	
}


作业5:将数组中的重复数据去重

package homework;
//将数组中的重复数据去重
public class Hw05 {

	public static void main(String[] args) {
		int[] arr = new int[]{10, 8, 5, 8, 5, 5, 6, 6 , 7, 8 , 8};
		int index = 0;
		// newArr用来存放不重复的值
		int[] newArr = new int[index];
		// 对数组进行循环
		for (int i = 0; i < arr.length; i++) {
			boolean flag = true;
			// arr[i]  和 newArr中的数值进行判断
			for (int j = 0; j < newArr.length; j++) {
				// 如果相等也就是重复,直接结束当前循环
				if (arr[i] == newArr[j]) {
					flag = false;
					break;
				}
			}
			// 如果不重复,先进行数组扩容,再把数据填进去
			if (flag) {
				index++;
				newArr = arr_big(newArr, index);
				newArr[index-1] = arr[i];
			}
		}
		for (int i : newArr) {
			System.out.println(i);
		}
	}


	//数组扩容                 原数组     扩成多少位
	public static int[] arr_big(int[] arr, int len) {
		int[] newArr = new int[len];
		for (int i = 0; i < arr.length; i++) {
			newArr[i] = arr[i];
		}
		return newArr;
	}
}

作业6:如何将10个0-10随机存入数组中

package homework;
//如何将10个0-10随机存入数组中
public class Hw06 {

	public static void main(String[] args) {
		int[] arr = new int[10];
		for (int i = 0;  i < arr.length; i++) {
			arr[i] = random(0,10);
		}
		for (int i : arr) {
			System.out.println(i);
		}
	}

	// 生成随机数
    public static int random(int min, int max) {
        return (int) (Math.random() * (max - min) + min);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值