Java基础巩固Day4作业

一、基础案例

题目1

定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值.

	int[] arr = new int[5];
	arr[0]=43;
	arr[1]=73;
	arr[2]=56;
	arr[3]=67;
	arr[4]=12;
	int min = arr[0];
	for(int i=1;i<arr.length;i++) {
		if(arr[i]<min) {
			min = arr[i];
		}
	}
	System.out.println("数组arr的最小值是:"+min);

题目2

定义一个长度为3的一维数组,给每个元素赋值. (要求数组中每个元素的值是0-9的随机数)
遍历数组打印每个元素的值

	Random r = new Random();
	int[] arr = new int[3];
	for(int i=0;i<arr.length;i++) {
		arr[i]=r.nextInt(10);
	}
	for(int i=0;i<arr.length;i++) {
		System.out.println("arr["+i+"]:"+arr[i]);
	}

题目3

已知数组int[] nums = {5,10,15},要求创建一个新数组
1.新数组的长度和已知数组相同
2.新数组每个元素的值 是已知数组对应位置元素的2倍
3.在控制台中打印新数组的所有元素

	int[] nums = {5,10,15};
	int[] arr = new int[nums.length];
	for(int i=0;i<nums.length;i++) {
		arr[i] = 2*nums[i];
	}
	for(int i=0;i<arr.length;i++) {
		System.out.print("arr["+i+"]:"+arr[i]+", ");
	}
	System.out.println();

题目4

键盘录入一个整数,创建一个该长度的数组,为每一个元素赋值为1-10的随机整数,最后打印数组中所有值大于5且为偶数的元素.

	Scanner sc = new Scanner(System.in);
	System.out.println("请输入一个整数做为数组的长度:");
	int len = sc.nextInt();
	Random r = new Random();
	int[] arr = new int[len];
	for(int i=0;i<arr.length;i++) {
		arr[i] = r.nextInt(10)+1;
	}
	System.out.print("arr所有数据:");
	for(int i=0;i<arr.length;i++) {
		System.out.print(+arr[i]+" ");
	}
	System.out.println();
	System.out.print("满足条件的arr数据:");
	for(int i=0;i<arr.length;i++) {
		if(arr[i]>5 && arr[i]%2 ==0) {
			System.out.print("arr["+i+"]:"+arr[i]+" ");
		}
		
	}
	System.out.println();

题目5

在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值。
请写代码实现。(不考虑小数部分)

	Scanner sc = new Scanner(System.in);
	int[] score = new int[6];
	for(int i=0;i<score.length;i++) {
		System.out.print("请输入第"+(i+1)+"位评委给出的成绩:");
		score[i]=sc.nextInt();
		System.out.println();
	}
	int sum=0;
	for(int i=0;i<score.length;i++) {
		sum+=score[i];
	}
	int min = score[0];
	int max = score[0];
	for(int i=1;i<score.length;i++) {
		if(score[i]<min) {
			min = score[i];
		}else if(score[i]>max) {
			max = score[i];
		}
	}
	int average = (sum-min-max)/(score.length-2);
	System.out.println("选手的最后得分为:"+average);

题目6

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?

第一个月:1
第二个月:1
第三个月:2
第四个月:3
第五个月:5

从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和
第一个月和第二个月的兔子对数都是1

	int[] arr = new int[20];
	arr[0] =1;
	arr[1] =1;
	for(int i=2;i<arr.length;i++) {
		arr[i] = arr[i-1]+arr[i-2];
	}
	System.out.println("第二十个月的兔子对数为:"+arr[19]);

二、扩展案例

题目1

将数字1-10保存到一个长度为10的一维数组中
定义一个新数组,长度为3,取出原来数组中随机三个元素(不考虑是否重复)
给新数组的元素赋值
求新数组所有元素的和

	int[] arr = new int[10];
	for(int i=0;i<10;i++) {
		arr[i]=i+1;
	}
	int[] newArr = new int[3];
	Random r = new Random();
	int sum=0;
	for(int i=0;i<3;i++) {
		newArr[i]=arr[r.nextInt(10)];
		System.out.println("随机取出的数为:"+newArr[i]);
		sum+=newArr[i];
	}
	System.out.println("数组所有元素的和为:"+sum);

题目2

分析以下需求,并用代码实现
1.键盘录入班级人数
2.根据录入的班级人数创建数组
3.利用随机数产生0-100的成绩(包含0和100)
4.要求:
(1)打印该班级的不及格人数
(2)打印该班级的平均分
(3)演示格式如下:
请输入班级人数:
键盘录入:100
控制台输出:
不及格人数:19
班级平均分:87

	Scanner sc = new Scanner(System.in);
	System.out.println("请录入班级人数:");
	int len = sc.nextInt();
	int[] arr = new int[len];
	int sum=0;
	int num_bujige=0;
	for(int i=0;i<arr.length;i++) {
		arr[i]=(int)(Math.random()*100);
		sum+=arr[i];
		if(arr[i]<60) {
			num_bujige+=1;
		}
	}
	System.out.println("不及格人数:"+num_bujige);
	System.out.println("班级平均分:"+sum/(arr.length+1));

题目3

假设有一个长度为5的数组,数组元素通过键盘录入,如下所示:
int[] arr = {1,3,-1,5,-2}
要求:
创建一个新数组newArr[],新数组中元素的存放顺序与原数组中的元素逆序,并且如果原数组中的元素值小于0,
在新数组中按0存储。最后输出原数组和新数组中的内容

打印格式:

请输入5个整数:
1
3
-1
5
-2
原数组内容:
1 3 -1 5 -2
新数组内容:
0 5 0 3 1

	int[] arr = new int[5];
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入第5个整数:");
	for(int i=0; i<arr.length;i++) {			
		arr[i] = sc.nextInt();		
	}
	System.out.println("原数组内容:");
	for(int i=0; i<arr.length;i++) {			
		System.out.print(arr[i]+" ");
	}
	System.out.println();
	int[] newArr = new int[arr.length];
	for(int i=0;i<newArr.length;i++) {
		if(arr[arr.length-1-i]<=0) {
			newArr[i]=0;
		}else {
			newArr[i]=arr[arr.length-1-i];
		}
	}
	System.out.println("新数组内容:");
	for(int i=0; i<newArr.length;i++) {			
		System.out.print(newArr[i]+" ");
	}
	System.out.println();

题目4

定义长度为10的int数组,数组中的10个元素为随机生成的1-100的数字,要求:打印数组中第二大的数和第二小的数字
打印格式:
原数组内容
90 34 12 35 98 23 17 71 4 66
数组中的第二大的数字为:90
数组中的第二小的数字为:12

	int[] arr = new int[10];
	Random r = new Random();
	for(int i=0;i<arr.length;i++) {
		arr[i]=r.nextInt(100)+1;
	}
	int max=0;
	int secondMax =0;
	int min =0;
	int secondMin =0;
	for(int i=1;i<arr.length;i++) {
		if(arr[i]>arr[max]) {
			secondMax = max;
			max =i;
		}else if(arr[i]<arr[max] && arr[i]>arr[secondMax]) {
			secondMax =i;
		}
		if(arr[i]<arr[min]) {
			secondMin = min;
			min=i;
		}else if(arr[i]>min && arr[i]<arr[secondMin]) {
			secondMin = i;
		}
	}
	System.out.println("原数组内容:");
	for(int i=0;i<arr.length;i++) {
		System.out.print(arr[i]+" ");
	}
	System.out.println();
	System.out.println("数组第二大的数字为:"+arr[secondMax]);
	System.out.println("数组第二小的数字为:"+arr[secondMin]);

题目5

定义长度为10的int数组,数组中的10个元素为随机生成的1-100的数字,要求:按格式打印数组中的元素内容
举例:
数组原内容:{1,2,3,4,5}
打印的内容:[1, 2, 3, 4, 5]

	int[] arr = new int[10];
	Random r = new Random();
	for(int i=0;i<arr.length;i++) {
		arr[i]=r.nextInt(100)+1;
	}
	System.out.print("数组原内容:{");
	for(int i=0;i<arr.length;i++) {
		System.out.print(arr[i]+",");
	}
	System.out.println("}");
	System.out.print("打印的内容:[");
	for(int i=0;i<arr.length;i++) {
		if(i==arr.length-1) {
			System.out.println(arr[i]+"]");
		}else {
			System.out.print(arr[i]+", ");
		}
	}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值