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;
}
}