java数组——20题练习(3-5题)

  • Post author:
  • Post category:java


3、练习:

1、从键盘输入本组学员的成绩,放到数组中

2、用for循环显示所有学员的成绩

3、排序:从低到高

4、查找是否有正好60分的,如果有返回位置

5、复制成绩最低三名构成新数组

6、用工具类打印成绩最低三名成绩

import java.util.Scanner;
import java.util.Arrays;

public class Exer3 {
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入本组人数:");
		int num = scan.nextInt();
		
		//1、声明一个数组并创建
		int[] scores = new int[num];
		
		//2、从键盘一次输入本组学员的成绩
		for (int i = 0;i < scores.length;i++){
			
			System.out.println("请输入第" + (i+1) +"名学员的成绩:范围(0-100)");
			//将成绩存在数组的元素中,为元素赋值
			scores[i] = scan.nextInt();
		}
		
		//3、显示本组学员的成绩
		System.out.println("本组的学员成绩如下:");
		for(int i = 0;i < scores.length;i++){
			System.out.println("本组第" + (i + 1) + "名学员的成绩为:" + scores[i]);
		}
		
		//4、排序:从低到高
		Arrays.sort(scores);
		
		System.out.println("从低到高的排序结果为:" + Arrays.toString(scores));
		
		//5、查询60分
		int index = Arrays.binarySearch(scores, 60);
		if(index < 0){
			System.out.println("没有刚好60分的学员。");
		}else{
			System.out.println("60分的索引数:" + index);
		}
		
		//6、复制成绩最低的三位组成新的数组
		int[] minArrays = Arrays.copyOf(scores, 3);
		
		//7、用工具类打印最低三位的成绩
		System.out.println("最低的三位学员的成绩为:" + Arrays.toString(minArrays));
		
		
	}
}

4、数组赋值练习1

创建一个char类型的26个元素的数组,分别 放置’A’-‘Z’。

使用for循环访问所有元素并打印出来。

public class Exer4 {
	public static void main(String[] args){
		char[] arr = new char[26];
		char j = 65;
		
		for(int i = 0;i < arr.length;i++){
			if(arr[i] == 0){
				arr[i] = j;
			}
			j++;
		}
		
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i] + " ");
		}
	}
}

5、数组赋值练习2

创建一个char类型的36个元素的数组,前26个元素放置’A’-‘Z’,   后10个元素放置’0′-‘9’。

使用for循环访问所有元素并打印出来。

提示:char类型数据运算 ‘A’+1 -> ‘B’,’0’+1 -> ‘1’

public class Exer5 {
	public static void main(String[] args){
		//1.声明第一个数组(前26位,存放A-Z)并创建
		char[] arr1 = new char[26];
		
		//2.声明第二个数组(后10位,存放0-9)并创建
		char[] arr2 = new char[10];
		
		//ASCII中0-9为:48-58
		char k = 48;
		
		//ASCII中A-Z为:65-91
		char j = 65;
		
		//对前26位字母数组进行依次赋值
		for(int i = 0;i < arr1.length;i++){
			if(arr1[i] == 0){
				arr1[i] = j;
			}
			j++;
		}
		
		//对后10位数字进行依次赋值
		for(int i = 0;i < arr2.length;i++){
			if(arr2[i] == 0){
				arr2[i] = k;
			}
			k++;
		}
		
		//创建一个新的数组,用来合并上面两个数组(注意:总长为两个数组长度和)
		char[] arr = new char[arr1.length + arr2.length];
		
		//遍历第一个数组(前26位)的值并赋值到新的数组上
		for(int i = 0;i < arr1.length;i++){
			char num = arr1[i];
			arr[i] = num;
		}
		
		//遍历第二个数组(后10位)的值并赋值到新的数组上
		for(int i = 0;i < arr2.length;i++){
			char num = arr2[i];
			//注意第二个数组进行赋值时,新的数组的长度的起始点
			arr[arr1.length + i] = num;
		}
		
		//遍历最终合并后的新的数组,输出新长为36的数组的数组元素
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i] + " ");
		}
	}
}



版权声明:本文为MoerPerfect原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。