java经典例题30道——(26-30)

26.将一个给定的整型数组转置输出

例如:源数组,1 2 3 4 5 6 转置之后的数组,6 5 4 3 2 1 

public static void main(String[] args) {
		int[] arr= {6, 5, 4, 3, 2, 1};
		for(int i=0; i<(arr.length)/2;i++) {
			int temp = arr[i];
			arr[i] = arr[arr.length-1-i];
			arr[arr.length-1-i] = temp;
		}
		System.out.println(Arrays.toString(arr));
	}

 27.要求该方法返回一个数组(如果key存在,数组中各元素的值分别为关键字key在原数组data中的各下标;如果key不存在,则返回一个长度为1的数组,数组元素为-1)。

public class Test {
		public static void main(String[] args) {
			Scanner sc = new Scanner(System.in);
			System.out.println("程序将自动生成有233个元素的数组所有的元素的值都在0到99请输入一个数值,\n程序将查找这数值在不在这个随机生成的数组中,如果在则会把相应的下标打印出来,如果没有则会打印-1.");
			System.out.print("请输入一个0到99的整数:");
			int key = sc.nextInt();
			int[] arr=new int[233];
			for(int i=0;i<arr.length;i++) {
				arr[i]=(int)(Math.random()*100);
			}
			System.out.println(Arrays.toString(arr));
			int[] arr1 =ordinalSearch(arr,key);
			System.out.println(Arrays.toString(arr1));
		}
	
		public static int[] ordinalSearch(int[]arr2,int b) {
			int a=0;
			int[] arr;
			for(int i=0;i<arr2.length;i++) {
				if(arr2[i]==b) {
					a++;
				}
			}if(a==0) {
				arr=new int[1];
				arr[0]=-1;
			}else {
				arr=new int[a];
				for(int i=0;i<arr2.length;i++) {
					if(b == arr2[i]) {
						a=a-1;
						arr[a]=i;
						
					}
				}
			}
			return arr;
		}
	}

 28.将数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;中的零去掉;并返回一个新的数组。

public class Test {
		public static void main(String[] args) {
			int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
			int newArr[] =deleteZero(oldArr);
			System.out.println(Arrays.toString(oldArr
					));
			System.out.println(Arrays.toString(newArr));
			
		}
	
		public static int[] deleteZero(int[] arr) {
			int a=0;
			
			for(int i=0;i<arr.length;i++) {
				if(arr[i]!=0) {
					a++;
				}
			}
			int x=0;
			int[] arr1= new int[a];
			for(int i=0;i<arr.length;i++) {
				if(arr[i]!=0) {
					arr1[x]=arr[i];
					x++;
				}
			}
			return arr1;
		}
	}

 29.将两个一维数组合并,并安照升序排列。

public class Test {

	public static void main(String[] args) {
		int[] arr= {1,7,9,11,13,15,17,19};
		int[] arr1= {2,4,6,8,10};
		int[] newArr=harmony(arr, arr1);
		System.out.println(Arrays.toString(newArr));
	}

	public static int[] harmony(int[] arr, int[] arr1) {
		int[] newArr= new int[arr.length+arr1.length];
		for(int i=0;i<arr.length;i++) {
			newArr[i]=arr[i];
		}
		for(int i=0;i<arr1.length;i++) {
			newArr[i+arr.length]=arr1[i];
		}
		System.out.println(Arrays.toString(newArr));
		for(int i=0;i<newArr.length;i++) {
			for(int a=i+1;a<newArr.length;a++) {
				int temp=0;
				if(newArr[i]>newArr[a]) {
					temp=newArr[i];
					newArr[i]=newArr[a];
					newArr[a]=temp;
				}
			}
		}
		
		return newArr;
	}
}

 30.定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},统计各成绩等级(90分以上为‘A’,8089分为‘B’,7079分为‘C’,60~69分为‘D’,60分以下为E)学生人数,并将其放入到数组count中,其中:count[0]存E级的人数,count[1]存D级的人数,……,count[4]存A级的人数。

public class Exercises04 {
	
		public static void main(String[] args) {
			int[] score= {72,89,65,58,87,91,53,82,71,93,76,68};
			classification(score);
		}
	
		public static int[][] classification(int[] arr){
			int[][] count=new int[5][];
			int a=0,b=0,c=0,d=0,e=0;
			for(int i=0;i<arr.length;i++) {
				if(arr[i]>=90) {
					a++;
				}
				if(arr[i]>=80 && arr[i]<=89) {
					b++;
				}
				if(arr[i]>=70 && arr[i]<=79) {
					c++;
				}
				if(arr[i]>=60 && arr[i]<=69) {
					d++;
				}
				if(arr[i]<60) {
					e++;
				}
			}
			count[0] =new int[e];
			count[1] =new int[d];
			count[2] =new int[c];
			count[3] =new int[b];
			count[4] =new int[a];
			for(int i=0;i<arr.length;i++) {
				if(arr[i]>=90) {
					a=a-1;
					count[4][a]=arr[i];
				}
				if(arr[i]>=80 && arr[i]<=89) {
					b=b-1;
					count[3][b]=arr[i];
				}
				if(arr[i]>=70 && arr[i]<=79) {
					c=c-1;
					count[2][c]=arr[i];
				}
				if(arr[i]>=60 && arr[i]<=69) {
					d=d-1;
					count[1][d]=arr[i];
				}
				if(arr[i]<60) {
					e=e-1;
					count[0][e]=arr[i];
				}
				}
			for(int i=0;i<count.length;i++) {
				System.out.print(Arrays.toString(count[i]));
			}
			
			return count;
		}
	}


 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值